drill-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jacq...@apache.org
Subject [37/45] drill git commit: DRILL-3987: (MOVE) Move logical expressions and operators out of common. Move to new drill-logical model.
Date Fri, 13 Nov 2015 02:38:07 GMT
http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/JoinCondition.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/JoinCondition.java b/common/src/main/java/org/apache/drill/common/logical/data/JoinCondition.java
deleted file mode 100644
index 611e70b..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/JoinCondition.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import org.apache.drill.common.expression.LogicalExpression;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-public class JoinCondition {
-  private final String relationship;
-  private final LogicalExpression left;
-  private final LogicalExpression right;
-
-  @JsonCreator
-  public JoinCondition(@JsonProperty("relationship") String relationship,
-      @JsonProperty("left") LogicalExpression left, @JsonProperty("right") LogicalExpression right) {
-    super();
-    this.relationship = relationship;
-    this.left = left;
-    this.right = right;
-  }
-
-  public String getRelationship() {
-    return relationship;
-  }
-
-  public LogicalExpression getLeft() {
-    return left;
-  }
-
-  public LogicalExpression getRight() {
-    return right;
-  }
-
-  public JoinCondition flip(){
-    return new JoinCondition(relationship, right, left);
-  }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Limit.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Limit.java b/common/src/main/java/org/apache/drill/common/logical/data/Limit.java
deleted file mode 100644
index 56ae8d9..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Limit.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.Iterator;
-
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-import com.google.common.collect.Iterators;
-
-@JsonTypeName("limit")
-public class Limit extends SingleInputOperator {
-
-  private final Integer first;
-  private final Integer last;
-
-  @JsonCreator
-  public Limit(@JsonProperty("first") Integer first, @JsonProperty("last") Integer last) {
-    super();
-    this.first = first;
-    this.last = last;
-  }
-
-  public Integer getFirst() {
-    return first;
-  }
-
-  public Integer getLast() {
-    return last;
-  }
-
-  @Override
-  public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-    return logicalVisitor.visitLimit(this, value);
-  }
-
-  @Override
-  public NodeBuilder nodeBuilder() {
-    return new LimitNodeBuilder();  //To change body of implemented methods use File | Settings | File Templates.
-  }
-
-  @Override
-  public Iterator<LogicalOperator> iterator() {
-    return Iterators.singletonIterator(getInput());
-  }
-
-  public static class LimitNodeBuilder implements NodeBuilder<Limit> {
-
-    @Override
-    public ObjectNode convert(ObjectMapper mapper, Limit operator, Integer inputId) {
-      ObjectNode limitNode = mapper.createObjectNode();
-      limitNode.put("op", "limit");
-      limitNode.put("input", inputId);
-      limitNode.put("first", operator.first);
-      limitNode.put("last", operator.last);
-      return limitNode;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/LogicalOperator.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/LogicalOperator.java b/common/src/main/java/org/apache/drill/common/logical/data/LogicalOperator.java
deleted file mode 100644
index 3343d4e..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/LogicalOperator.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.apache.drill.common.graph.GraphValue;
-import org.apache.drill.common.logical.ValidationError;
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonIdentityInfo;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-import com.fasterxml.jackson.annotation.JsonTypeInfo;
-import com.fasterxml.jackson.annotation.ObjectIdGenerators;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-@JsonPropertyOrder({"@id", "memo", "input"}) // op will always be first since it is wrapped.
-@JsonIdentityInfo(generator = ObjectIdGenerators.IntSequenceGenerator.class, property = "@id")
-@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "op")
-public interface LogicalOperator extends GraphValue<LogicalOperator> {
-
-  public void setupAndValidate(List<LogicalOperator> operators, Collection<ValidationError> errors);
-
-  /**
-   * Provides capability to build a set of output based on traversing a query graph tree.
-   *
-   * @param logicalVisitor
-   * @return
-   */
-  public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E;
-
-  public void registerAsSubscriber(LogicalOperator operator);
-
-  NodeBuilder nodeBuilder();
-
-  public interface NodeBuilder<T extends LogicalOperator> {
-    ObjectNode convert(ObjectMapper mapper, T operator, Integer inputId);
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/LogicalOperatorBase.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/LogicalOperatorBase.java b/common/src/main/java/org/apache/drill/common/logical/data/LogicalOperatorBase.java
deleted file mode 100644
index a213c8d..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/LogicalOperatorBase.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-import java.util.Set;
-
-import org.apache.drill.common.graph.GraphVisitor;
-import org.apache.drill.common.logical.ValidationError;
-import org.apache.drill.common.scanner.persistence.ScanResult;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-
-public abstract class LogicalOperatorBase implements LogicalOperator{
-  static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(LogicalOperatorBase.class);
-
-  private List<LogicalOperator> children = new ArrayList<LogicalOperator>();
-
-  private String memo;
-
-  @Override
-  public final int hashCode() {
-    return super.hashCode();
-  }
-
-  @Override
-  public void setupAndValidate(List<LogicalOperator> operators, Collection<ValidationError> errors) {
-    // TODO: remove this and implement individually.
-  }
-
-  @Override
-  public NodeBuilder nodeBuilder() {
-    // FIXME: Implement this on all logical operators
-    throw new UnsupportedOperationException("Not yet implemented.");
-  }
-
-  @Override
-  public void accept(GraphVisitor<LogicalOperator> visitor) {
-    if (visitor.enter(this)) {
-      visitor.leave(this);
-    }
-  }
-
-  @Override
-  public void registerAsSubscriber(LogicalOperator operator) {
-    if (operator == null) {
-      throw new IllegalArgumentException("You attempted to register a null operators.");
-    }
-    children.add(operator);
-  }
-
-  @Override
-  public String toString() {
-    return this.getClass().getSimpleName() + " [memo=" + memo + "]";
-  }
-
-  @JsonInclude(Include.NON_EMPTY)
-  @JsonProperty("memo")
-  public String getMemo() {
-    return memo;
-  }
-
-  public void setMemo(String memo) {
-    this.memo = memo;
-  }
-
-  public static Set<Class<? extends LogicalOperator>> getSubTypes(final ScanResult classpathScan) {
-    final Set<Class<? extends LogicalOperator>> ops = classpathScan.getImplementations(LogicalOperator.class);
-    logger.debug("Found {} logical operator classes: {}.", ops.size(), ops);
-    return ops;
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/NamedExpression.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/NamedExpression.java b/common/src/main/java/org/apache/drill/common/logical/data/NamedExpression.java
deleted file mode 100644
index a166c25..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/NamedExpression.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import org.apache.drill.common.expression.FieldReference;
-import org.apache.drill.common.expression.LogicalExpression;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonPropertyOrder;
-
-@JsonPropertyOrder({"ref", "expr"})
-public class NamedExpression {
-  private final LogicalExpression expr;
-  private final FieldReference ref;
-
-  @JsonCreator
-  public NamedExpression(@JsonProperty("expr") LogicalExpression expr, @JsonProperty("ref") FieldReference ref) {
-    super();
-    this.expr = expr;
-    this.ref = ref;
-  }
-
-  public LogicalExpression getExpr() {
-    return expr;
-  }
-
-  public FieldReference getRef() {
-    return ref;
-  }
-
-  @Override
-  public String toString() {
-    return "NamedExpression [expr=" + expr + ", ref=" + ref + "]";
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Order.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Order.java b/common/src/main/java/org/apache/drill/common/logical/data/Order.java
deleted file mode 100644
index fca6010..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Order.java
+++ /dev/null
@@ -1,252 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.drill.common.exceptions.DrillRuntimeException;
-import org.apache.drill.common.expression.FieldReference;
-import org.apache.drill.common.expression.LogicalExpression;
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-import org.apache.calcite.rel.RelFieldCollation;
-import org.apache.calcite.rel.RelFieldCollation.Direction;
-import org.apache.calcite.rel.RelFieldCollation.NullDirection;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonIgnore;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.google.common.collect.Iterators;
-import com.google.common.collect.Lists;
-
-@JsonTypeName("order")
-public class Order extends SingleInputOperator {
-
-  private final Ordering[] orderings;
-  private final FieldReference within;
-
-  @JsonCreator
-  public Order(@JsonProperty("within") FieldReference within, @JsonProperty("orderings") Ordering... orderings) {
-    this.orderings = orderings;
-    this.within = within;
-  }
-
-  public Ordering[] getOrderings() {
-    return orderings;
-  }
-
-  public FieldReference getWithin() {
-    return within;
-  }
-
-    @Override
-    public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-        return logicalVisitor.visitOrder(this, value);
-    }
-
-    @Override
-    public Iterator<LogicalOperator> iterator() {
-        return Iterators.singletonIterator(getInput());
-    }
-
-
-  /**
-   * Representation of a SQL &lt;sort specification>.
-   */
-  public static class Ordering {
-
-    private final LogicalExpression expr;
-    /** Net &lt;ordering specification>. */
-    private final Direction direction;
-    /** Net &lt;null ordering> */
-    private final NullDirection nullOrdering;
-
-    /**
-     * Constructs a sort specification.
-     * @param  expr  ...
-     * @param  strOrderingSpec  the &lt;ordering specification> as string;
-     *             allowed values: {@code "ASC"}, {@code "DESC"}, {@code null};
-     *             null specifies default &lt;ordering specification>
-     *                   ({@code "ASC"} / {@link Direction#ASCENDING})
-     * @param  strNullOrdering   the &lt;null ordering> as string;
-     *             allowed values: {@code "FIRST"}, {@code "LAST"},
-     *             {@code "UNSPECIFIED"}, {@code null};
-     *             null specifies default &lt;null ordering>
-     *             (omitted / {@link NullDirection#UNSPECIFIED}, interpreted later)
-     */
-    @JsonCreator
-    public Ordering( @JsonProperty("expr") LogicalExpression expr,
-                     @JsonProperty("order") String strOrderingSpec,
-                     @JsonProperty("nullDirection") String strNullOrdering ) {
-      this.expr = expr;
-      this.direction = getOrderingSpecFromString( strOrderingSpec );
-      this.nullOrdering = getNullOrderingFromString( strNullOrdering );
-    }
-
-    public Ordering(Direction direction, LogicalExpression e, NullDirection nullOrdering) {
-      this.expr = e;
-      this.direction = direction;
-      this.nullOrdering = nullOrdering;
-    }
-
-    public Ordering(Direction direction, LogicalExpression e) {
-      this(direction, e, NullDirection.FIRST);
-    }
-
-    private static Direction getOrderingSpecFromString( String strDirection ) {
-      final Direction direction;
-      if ( null == strDirection
-          || Direction.ASCENDING.shortString.equals( strDirection ) ) {
-        direction = Direction.ASCENDING;
-      }
-      else if ( Direction.DESCENDING.shortString.equals( strDirection ) ) {
-        direction = Direction.DESCENDING;
-      }
-      else {
-        throw new DrillRuntimeException(
-            "Unknown <ordering specification> string (not \"ASC\", \"DESC\", "
-            + "or null): \"" + strDirection + "\"" );
-      }
-      return direction;
-    }
-
-    private static NullDirection getNullOrderingFromString( String strNullOrdering ) {
-      final RelFieldCollation.NullDirection nullOrdering;
-      if ( null == strNullOrdering ) {
-        nullOrdering = NullDirection.UNSPECIFIED;
-      }
-      else {
-        try {
-          nullOrdering = NullDirection.valueOf( strNullOrdering );
-        }
-        catch ( IllegalArgumentException e ) {
-          throw new DrillRuntimeException(
-              "Internal error:  Unknown <null ordering> string (not "
-              + "\"" + NullDirection.FIRST.name() + "\", "
-              + "\"" + NullDirection.LAST.name() + "\", or "
-              + "\"" + NullDirection.UNSPECIFIED.name() + "\" or null): "
-              + "\"" + strNullOrdering + "\"" );
-        }
-      }
-      return nullOrdering;
-   }
-
-    @Override
-    public String toString() {
-      return
-          super.toString()
-          + "[ "
-          + " expr = " + expr
-          + ", direction = " + direction
-          + ", nullOrdering = " + nullOrdering
-          + "] ";
-    }
-
-    @JsonIgnore
-    public Direction getDirection() {
-      return direction;
-    }
-
-    public LogicalExpression getExpr() {
-      return expr;
-    }
-
-    public String getOrder() {
-      switch (direction) {
-      case ASCENDING:
-        return Direction.ASCENDING.shortString;
-      case DESCENDING:
-        return Direction.DESCENDING.shortString;
-      default:
-        throw new DrillRuntimeException(
-            "Unexpected " + Direction.class.getName() + " value other than "
-            + Direction.ASCENDING + " or " + Direction.DESCENDING + ": "
-            + direction );
-      }
-    }
-
-    public NullDirection getNullDirection() {
-      return nullOrdering;
-    }
-
-    /**
-     * Reports whether NULL sorts high or low in this ordering.
-     *
-     * @return
-     * {@code true}  if NULL sorts higher than any other value;
-     * {@code false} if NULL sorts lower  than any other value
-     */
-    public boolean nullsSortHigh() {
-      final boolean nullsHigh;
-
-      switch (nullOrdering) {
-
-      case UNSPECIFIED:
-        // Default:  NULL sorts high: like NULLS LAST if ASC, FIRST if DESC.
-        nullsHigh = true;
-        break;
-
-      case FIRST:
-        // FIRST: NULL sorts low with ASC, high with DESC.
-        nullsHigh = Direction.DESCENDING == getDirection();
-        break;
-
-      case LAST:
-        // LAST: NULL sorts high with ASC, low with DESC.
-        nullsHigh = Direction.ASCENDING == getDirection();
-        break;
-
-      default:
-        throw new DrillRuntimeException(
-            "Unexpected " + NullDirection.class.getName() + " value other than "
-            + NullDirection.FIRST + ", " + NullDirection.LAST + " or " + NullDirection.UNSPECIFIED + ": "
-            + nullOrdering );
-      }
-
-      return nullsHigh;
-    }
-
-  }
-
-  public static Builder builder(){
-    return new Builder();
-  }
-
-  public static class Builder extends AbstractSingleBuilder<Order, Builder>{
-    private List<Ordering> orderings = Lists.newArrayList();
-    private FieldReference within;
-
-    public Builder setWithin(FieldReference within){
-      this.within = within;
-      return this;
-    }
-
-    public Builder addOrdering(Direction direction, LogicalExpression e, NullDirection collation){
-      orderings.add(new Ordering(direction, e, collation));
-      return this;
-    }
-
-    @Override
-    public Order internalBuild() {
-      return new Order(within, orderings.toArray(new Ordering[orderings.size()]));
-    }
-
-
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Project.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Project.java b/common/src/main/java/org/apache/drill/common/logical/data/Project.java
deleted file mode 100644
index 4345c80..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Project.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.List;
-
-import org.apache.drill.common.exceptions.ExpressionParsingException;
-import org.apache.drill.common.expression.FieldReference;
-import org.apache.drill.common.expression.LogicalExpression;
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.google.common.collect.Lists;
-
-@JsonTypeName("project")
-public class Project extends SingleInputOperator {
-
-  private final NamedExpression[] selections;
-
-  @JsonCreator
-  public Project(@JsonProperty("projections") NamedExpression[] selections) {
-    this.selections = selections;
-    if (selections == null || selections.length == 0) {
-      throw new ExpressionParsingException(
-          "Project did not provide any projection selections.  At least one projection must be provided.");
-//    for (int i = 0; i < selections.length; i++) {
-//      PathSegment segment = selections[i].getRef().getRootSegment();
-//      CharSequence path = segment.getNameSegment().getPath();
-//      if (!segment.isNamed() || !path.equals("output"))
-//        throw new ExpressionParsingException(
-//            String
-//                .format(
-//                    "Outputs for projections always have to start with named path of output. First segment was named '%s' or was named [%s]",
-//                    path, segment.isNamed()));
-//
-//    }
-    }
-  }
-
-  @JsonProperty("projections")
-  public NamedExpression[] getSelections() {
-    return selections;
-  }
-
-  @Override
-  public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-    return logicalVisitor.visitProject(this, value);
-  }
-
-  public static Builder builder() {
-    return new Builder();
-  }
-
-  public static class Builder extends AbstractSingleBuilder<Project, Builder> {
-
-    private List<NamedExpression> exprs = Lists.newArrayList();
-
-    public Builder addExpr(NamedExpression expr) {
-      exprs.add(expr);
-      return this;
-    }
-
-    public Builder addExpr(FieldReference ref, LogicalExpression expr) {
-      exprs.add(new NamedExpression(expr, ref));
-      return this;
-    }
-
-    @Override
-    public Project internalBuild() {
-      return new Project(aN(exprs));
-    }
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/RunningAggregate.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/RunningAggregate.java b/common/src/main/java/org/apache/drill/common/logical/data/RunningAggregate.java
deleted file mode 100644
index e280627..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/RunningAggregate.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.Iterator;
-
-import org.apache.drill.common.expression.FieldReference;
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.google.common.collect.Iterators;
-
-@JsonTypeName("runningaggregate")
-public class RunningAggregate extends SingleInputOperator{
-
-  private final FieldReference within;
-  private final NamedExpression[]  aggregations;
-
-  @JsonCreator
-  public RunningAggregate(@JsonProperty("within") FieldReference within, @JsonProperty("aggregations") NamedExpression[] aggregations) {
-    super();
-    this.within = within;
-    this.aggregations = aggregations;
-  }
-
-  public FieldReference getWithin() {
-    return within;
-  }
-
-  public NamedExpression[] getAggregations() {
-    return aggregations;
-  }
-
-    @Override
-    public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-        return logicalVisitor.visitRunningAggregate(this, value);
-    }
-
-    @Override
-    public Iterator<LogicalOperator> iterator() {
-        return Iterators.singletonIterator(getInput());
-    }
-
-
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Scan.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Scan.java b/common/src/main/java/org/apache/drill/common/logical/data/Scan.java
deleted file mode 100644
index 68eabbb..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Scan.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import org.apache.drill.common.JSONOptions;
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-
-@JsonTypeName("scan")
-public class Scan extends SourceOperator {
-  private final String storageEngine;
-  private final JSONOptions selection;
-
-  @JsonCreator
-  public Scan(@JsonProperty("storageengine") String storageEngine, @JsonProperty("selection") JSONOptions selection) {
-    super();
-    this.storageEngine = storageEngine;
-    this.selection = selection;
-  }
-
-  @JsonProperty("storageengine")
-  public String getStorageEngine() {
-    return storageEngine;
-  }
-
-  public JSONOptions getSelection() {
-    return selection;
-  }
-
-  @Override
-  public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-      return logicalVisitor.visitScan(this, value);
-  }
-
-  public static Builder builder() {
-    return new Builder();
-  }
-
-  public static class Builder extends AbstractBuilder<Scan>{
-    private String storageEngine;
-    private JSONOptions selection;
-
-    public Builder storageEngine(String storageEngine) {
-      this.storageEngine = storageEngine;
-      return this;
-    }
-
-    public Builder selection(JSONOptions selection) {
-      this.selection = selection;
-      return this;
-    }
-
-    @Override
-    public Scan build() {
-      return new Scan(storageEngine, selection);
-    }
-
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Sequence.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Sequence.java b/common/src/main/java/org/apache/drill/common/logical/data/Sequence.java
deleted file mode 100644
index f04b09c..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Sequence.java
+++ /dev/null
@@ -1,187 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.io.IOException;
-import java.util.Iterator;
-
-import org.apache.drill.common.logical.data.Sequence.De;
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.fasterxml.jackson.annotation.ObjectIdGenerator;
-import com.fasterxml.jackson.annotation.ObjectIdGenerators;
-import com.fasterxml.jackson.core.JsonLocation;
-import com.fasterxml.jackson.core.JsonParseException;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.JsonToken;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.JavaType;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
-import com.fasterxml.jackson.databind.deser.impl.ReadableObjectId;
-import com.fasterxml.jackson.databind.deser.std.StdDeserializer;
-import com.google.common.collect.Iterators;
-
-/**
- * Describes a list of operators where each operator only has one input and that
- * input is the operator that came before.
- *
- */
-@JsonDeserialize(using = De.class)
-@JsonTypeName("sequence")
-public class Sequence extends LogicalOperatorBase {
-  static final Logger logger = LoggerFactory.getLogger(Sequence.class);
-
-  private Sequence() {}
-
-  public boolean openTop;
-  public LogicalOperator input;
-  @JsonProperty("do")
-  public LogicalOperator[] stream;
-
-    @Override
-    public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-        return logicalVisitor.visitSequence(this, value);
-    }
-
-    @Override
-    public Iterator<LogicalOperator> iterator() {
-        return Iterators.singletonIterator(stream[stream.length - 1]);
-    }
-
-    public static class De extends StdDeserializer<LogicalOperator> {
-
-    protected De() {
-      super(Sequence.class);
-    }
-
-    @Override
-    public LogicalOperator deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException,
-        JsonProcessingException {
-      ObjectIdGenerator<Integer> idGenerator = new ObjectIdGenerators.IntSequenceGenerator();
-      JsonLocation start = jp.getCurrentLocation();
-      JsonToken t = jp.getCurrentToken();
-      LogicalOperator parent = null;
-      LogicalOperator first = null;
-      LogicalOperator prev = null;
-      Integer id = null;
-
-      while (true) {
-        String fieldName = jp.getText();
-        t = jp.nextToken();
-        switch (fieldName) { // switch on field names.
-        case "@id":
-          id = _parseIntPrimitive(jp, ctxt);
-          break;
-        case "input":
-          JavaType tp = ctxt.constructType(LogicalOperator.class);
-          JsonDeserializer<Object> d = ctxt.findRootValueDeserializer(tp);
-          parent = (LogicalOperator) d.deserialize(jp, ctxt);
-          break;
-
-        case "do":
-          if (!jp.isExpectedStartArrayToken()) {
-            throwE(
-                jp,
-                "The do parameter of sequence should be an array of SimpleOperators.  Expected a JsonToken.START_ARRAY token but received a "
-                    + t.name() + "token.");
-          }
-
-          int pos = 0;
-          while ((t = jp.nextToken()) != JsonToken.END_ARRAY) {
-            // logger.debug("Reading sequence child {}.", pos);
-            JsonLocation l = jp.getCurrentLocation(); // get current location
-                                                      // first so we can
-                                                      // correctly reference the
-                                                      // start of the object in
-                                                      // the case that the type
-                                                      // is wrong.
-            LogicalOperator o = jp.readValueAs(LogicalOperator.class);
-
-            if (pos == 0) {
-              if (!(o instanceof SingleInputOperator) && !(o instanceof SourceOperator)) {
-                throwE(
-                    l,
-                    "The first operator in a sequence must be either a ZeroInput or SingleInput operator.  The provided first operator was not. It was of type "
-                        + o.getClass().getName());
-              }
-              first = o;
-            } else {
-              if (!(o instanceof SingleInputOperator)) {
-                throwE(l, "All operators after the first must be single input operators.  The operator at position "
-                    + pos + " was not. It was of type " + o.getClass().getName());
-              }
-              SingleInputOperator now = (SingleInputOperator) o;
-              now.setInput(prev);
-            }
-            prev = o;
-
-            pos++;
-          }
-          break;
-        default:
-          throwE(jp, "Unknown field name provided for Sequence: " + jp.getText());
-        }
-
-        t = jp.nextToken();
-        if (t == JsonToken.END_OBJECT) {
-          break;
-        }
-      }
-
-      if (first == null) {
-        throwE(start, "A sequence must include at least one operator.");
-      }
-      if ((parent == null && first instanceof SingleInputOperator)
-          || (parent != null && first instanceof SourceOperator)) {
-        throwE(start,
-            "A sequence must either start with a ZeroInputOperator or have a provided input. It cannot have both or neither.");
-      }
-
-      if (parent != null && first instanceof SingleInputOperator) {
-        ((SingleInputOperator) first).setInput(parent);
-      }
-
-      // set input reference.
-      if (id != null) {
-
-        ReadableObjectId rid = ctxt.findObjectId(id, idGenerator);
-        rid.bindItem(prev);
-        // logger.debug("Binding id {} to item {}.", rid.id, rid.item);
-
-      }
-
-      return first;
-    }
-
-  }
-
-  private static void throwE(JsonLocation l, String e) throws JsonParseException {
-    throw new JsonParseException(e, l);
-  }
-
-  private static void throwE(JsonParser jp, String e) throws JsonParseException {
-    throw new JsonParseException(e, jp.getCurrentLocation());
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/SingleInputOperator.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/SingleInputOperator.java b/common/src/main/java/org/apache/drill/common/logical/data/SingleInputOperator.java
deleted file mode 100644
index e46cb6b..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/SingleInputOperator.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.Iterator;
-
-import org.apache.drill.common.logical.UnexpectedOperatorType;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.google.common.collect.Iterators;
-
-/**
- * SimpleOperator is an operator that has one inputs at most.
- */
-public abstract class SingleInputOperator extends LogicalOperatorBase {
-
-  private LogicalOperator input;
-
-  @JsonProperty("input")
-  public LogicalOperator getInput() {
-    return input;
-  }
-
-  @JsonProperty(value="input", required=true)
-  public void setInput(LogicalOperator input) {
-    if (input instanceof SinkOperator) {
-      throw new UnexpectedOperatorType("You have set the input of a sink node of type ["+input.getClass().getSimpleName()+ "] as the input for another node of type ["+this.getClass().getSimpleName()+ "].  This is invalid.");
-    }
-    this.input = input;
-    input.registerAsSubscriber(this);
-  }
-
-  @Override
-  public Iterator<LogicalOperator> iterator() {
-    return Iterators.singletonIterator(input);
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/SinkOperator.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/SinkOperator.java b/common/src/main/java/org/apache/drill/common/logical/data/SinkOperator.java
deleted file mode 100644
index 2ca4006..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/SinkOperator.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-
-/**
- * An operator that cannot be subscribed to.
- */
-public abstract class SinkOperator extends SingleInputOperator{
-
-  @Override
-  public void registerAsSubscriber(LogicalOperator operator) {
-    throw new UnsupportedOperationException("You can not subscribe to a sink operator such as " + this.getClass().getSimpleName());
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/SourceOperator.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/SourceOperator.java b/common/src/main/java/org/apache/drill/common/logical/data/SourceOperator.java
deleted file mode 100644
index d4f8246..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/SourceOperator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.Iterator;
-
-import com.google.common.collect.Iterators;
-
-
-/**
- * An operator that produces data without any parents.  (zero input operator)
- */
-public abstract class SourceOperator extends LogicalOperatorBase{
-
-  @Override
-  public Iterator<LogicalOperator> iterator() {
-      return Iterators.emptyIterator();
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Store.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Store.java b/common/src/main/java/org/apache/drill/common/logical/data/Store.java
deleted file mode 100644
index 8f99eed..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Store.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.Iterator;
-
-import org.apache.drill.common.JSONOptions;
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.google.common.collect.Iterators;
-
-@JsonTypeName("store")
-public class Store extends SinkOperator{
-  static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(Store.class);
-
-  private final String storageEngine;
-  private final JSONOptions target;
-
-  @JsonCreator
-  public Store(@JsonProperty("storageengine") String storageEngine, @JsonProperty("target") JSONOptions target) {
-    super();
-    this.storageEngine = storageEngine;
-    this.target = target;
-  }
-
-  public String getStorageEngine() {
-    return storageEngine;
-  }
-
-  public JSONOptions getTarget() {
-    return target;
-  }
-
-  @Override
-  public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-      return logicalVisitor.visitStore(this, value);
-  }
-
-  @Override
-  public Iterator<LogicalOperator> iterator() {
-      return Iterators.singletonIterator(getInput());
-  }
-
-  public static Builder builder() {
-    return new Builder();
-  }
-
-  public static class Builder extends AbstractSingleBuilder<Store, Builder>{
-    private String storageEngine;
-    private JSONOptions target;
-
-    public Builder storageEngine(String storageEngine) {
-      this.storageEngine = storageEngine;
-      return this;
-    }
-
-    public Builder target(JSONOptions target) {
-      this.target = target;
-      return this;
-    }
-
-    @Override
-    public Store internalBuild() {
-      return new Store(storageEngine, target);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Transform.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Transform.java b/common/src/main/java/org/apache/drill/common/logical/data/Transform.java
deleted file mode 100644
index 129ae2c..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Transform.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.Iterator;
-
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.google.common.collect.Iterators;
-
-@JsonTypeName("transform")
-public class Transform extends SingleInputOperator {
-
-  private final NamedExpression[] transforms;
-
-  @JsonCreator
-  public Transform(@JsonProperty("transforms") NamedExpression[] transforms) {
-    super();
-    this.transforms = transforms;
-  }
-
-  public NamedExpression[] getTransforms() {
-    return transforms;
-  }
-
-  @Override
-  public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-    return logicalVisitor.visitTransform(this, value);
-  }
-
-  @Override
-  public Iterator<LogicalOperator> iterator() {
-    return Iterators.singletonIterator(getInput());
-  }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Union.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Union.java b/common/src/main/java/org/apache/drill/common/logical/data/Union.java
deleted file mode 100644
index 113ffe0..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Union.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.google.common.collect.Iterators;
-import com.google.common.collect.Lists;
-
-@JsonTypeName("union")
-public class Union extends LogicalOperatorBase {
-  private final LogicalOperator[] inputs;
-  private final boolean distinct;
-
-//  @JsonCreator
-//  public Union(@JsonProperty("inputs") LogicalOperator[] inputs){
-//    this(inputs, false);
-//  }
-
-  @JsonCreator
-  public Union(@JsonProperty("inputs") LogicalOperator[] inputs, @JsonProperty("distinct") Boolean distinct){
-    this.inputs = inputs;
-      for (LogicalOperator o : inputs) {
-          o.registerAsSubscriber(this);
-      }
-    this.distinct = distinct == null ? false : distinct;
-  }
-
-  public LogicalOperator[] getInputs() {
-    return inputs;
-  }
-
-  public boolean isDistinct() {
-    return distinct;
-  }
-
-    @Override
-    public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-        return logicalVisitor.visitUnion(this, value);
-    }
-
-    @Override
-    public Iterator<LogicalOperator> iterator() {
-        return Iterators.forArray(inputs);
-    }
-
-
-    public static Builder builder(){
-      return new Builder();
-    }
-
-    public static class Builder extends AbstractBuilder<Union>{
-      private List<LogicalOperator> inputs = Lists.newArrayList();
-      private boolean distinct;
-
-      public Builder addInput(LogicalOperator o){
-        inputs.add(o);
-        return this;
-      }
-
-      public Builder setDistinct(boolean distinct){
-        this.distinct = distinct;
-        return this;
-      }
-
-      @Override
-      public Union build() {
-        return new Union(inputs.toArray(new LogicalOperator[inputs.size()]), distinct);
-      }
-
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Values.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Values.java b/common/src/main/java/org/apache/drill/common/logical/data/Values.java
deleted file mode 100644
index 9276e55..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Values.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import org.apache.drill.common.JSONOptions;
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import com.fasterxml.jackson.core.JsonLocation;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.google.common.base.Preconditions;
-
-@JsonTypeName("values")
-public class Values extends SourceOperator {
-
-    private final JSONOptions content;
-
-    @JsonCreator
-    public Values(@JsonProperty("content") JSONOptions content){
-        super();
-        this.content = content;
-        Preconditions.checkNotNull(content, "content attribute is required for source operator 'constant'.");
-    }
-
-    public JSONOptions getContent() {
-        return content;
-    }
-
-    @Override
-    public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-      return logicalVisitor.visitValues(this, value);
-    }
-
-    public static Builder builder(){
-      return new Builder();
-    }
-
-    public static class Builder extends AbstractBuilder<Values>{
-      private JSONOptions content;
-
-      public Builder content(JsonNode n){
-        content = new JSONOptions(n, JsonLocation.NA);
-        return this;
-      }
-
-      @Override
-      public Values build() {
-        return new Values(content);
-      }
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Window.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Window.java b/common/src/main/java/org/apache/drill/common/logical/data/Window.java
deleted file mode 100644
index 0f550dc..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Window.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import com.google.common.collect.Iterators;
-import com.google.common.collect.Lists;
-import org.apache.drill.common.expression.FieldReference;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-import org.apache.drill.common.expression.LogicalExpression;
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import java.util.Collection;
-import java.util.Iterator;
-import java.util.List;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-
-@JsonTypeName("window")
-public class Window extends SingleInputOperator {
-  private final NamedExpression[] withins;
-  private final NamedExpression[] aggregations;
-  private final Order.Ordering[] orderings;
-  private final long start;
-  private final long end;
-
-
-  @JsonCreator
-  public Window(@JsonProperty("withins") NamedExpression[] withins,
-                @JsonProperty("aggregations") NamedExpression[] aggregations,
-                @JsonProperty("orderings") Order.Ordering[] orderings,
-                @JsonProperty("start") Long start,
-                @JsonProperty("end") Long end) {
-    super();
-    this.withins = withins;
-    this.start = start == null ? Long.MIN_VALUE : start;
-    this.end = end == null ? Long.MIN_VALUE : end;
-    this.aggregations = aggregations;
-    this.orderings = orderings;
-  }
-
-  public NamedExpression[] getWithins() {
-    return withins;
-  }
-
-  public long getStart() {
-    return start;
-  }
-
-  public long getEnd() {
-    return end;
-  }
-
-  public NamedExpression[] getAggregations() {
-    return aggregations;
-  }
-
-  public Order.Ordering[] getOrderings() {
-    return orderings;
-  }
-
-  @Override
-  public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-    return logicalVisitor.visitWindow(this, value);
-  }
-
-  @Override
-  public Iterator<LogicalOperator> iterator() {
-    return Iterators.singletonIterator(getInput());
-  }
-
-  public static class Builder extends AbstractSingleBuilder<Window, Builder>{
-    private List<NamedExpression> aggregations = Lists.newArrayList();
-    private List<NamedExpression> withins = Lists.newArrayList();
-    private List<Order.Ordering> orderings = Lists.newArrayList();
-    private long start = Long.MIN_VALUE;
-    private long end = Long.MIN_VALUE;
-
-
-    public Builder addAggregation(FieldReference ref, LogicalExpression expr){
-      aggregations.add(new NamedExpression(expr, ref));
-      return this;
-    }
-
-    public Builder addWithin(FieldReference within, LogicalExpression expr) {
-      withins.add(new NamedExpression(expr, within));
-      return this;
-    }
-
-    public Window internalBuild() {
-      //TODO withins can actually be empty: over(), over(order by <expression>), ...
-      checkState(!withins.isEmpty(), "Withins in window must not be empty.");
-      checkState(!aggregations.isEmpty(), "Aggregations in window must not be empty.");
-      return new Window(aN(withins), aN(aggregations), aO(orderings), start, end);
-    }
-
-    public Builder addOrdering(Order.Ordering ordering) {
-      orderings.add(ordering);
-      return this;
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/Writer.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/Writer.java b/common/src/main/java/org/apache/drill/common/logical/data/Writer.java
deleted file mode 100644
index 6e51df7..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/Writer.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data;
-
-import org.apache.drill.common.logical.data.visitors.LogicalVisitor;
-
-import com.fasterxml.jackson.annotation.JsonCreator;
-import com.fasterxml.jackson.annotation.JsonProperty;
-import com.fasterxml.jackson.annotation.JsonTypeName;
-
-@JsonTypeName("writer")
-public class Writer extends SingleInputOperator {
-
-  // TODO: Hack - Make the type generic until "common" and "java-exec" modules are merged (DRILL-507).
-  private final Object createTableEntry;
-
-  @JsonCreator
-  public Writer(@JsonProperty("createTableEntry") Object createTableEntry) {
-    this.createTableEntry = createTableEntry;
-  }
-
-  @Override
-  public <T, X, E extends Throwable> T accept(LogicalVisitor<T, X, E> logicalVisitor, X value) throws E {
-    return logicalVisitor.visitWriter(this, value);
-  }
-
-  public static Builder builder() {
-    return new Builder();
-  }
-
-  public static class Builder extends AbstractSingleBuilder<Writer, Builder> {
-
-    // TODO: Hack - Make the type generic until "common" and "java-exec" modules are merged (DRILL-507).
-    private Object createTableEntry;
-
-    public Builder setCreateTableEntry(Object createTableEntry) {
-      this.createTableEntry = createTableEntry;
-      return this;
-    }
-
-    @Override
-    public Writer internalBuild() {
-      return new Writer(createTableEntry);
-    }
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/package-info.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/package-info.java b/common/src/main/java/org/apache/drill/common/logical/data/package-info.java
deleted file mode 100644
index fc76c0d..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Logical operators in a query graph.
- */
-package org.apache.drill.common.logical.data;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/visitors/AbstractLogicalVisitor.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/visitors/AbstractLogicalVisitor.java b/common/src/main/java/org/apache/drill/common/logical/data/visitors/AbstractLogicalVisitor.java
deleted file mode 100644
index 165ee66..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/visitors/AbstractLogicalVisitor.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data.visitors;
-
-import org.apache.drill.common.logical.data.Values;
-import org.apache.drill.common.logical.data.Filter;
-import org.apache.drill.common.logical.data.Flatten;
-import org.apache.drill.common.logical.data.GroupingAggregate;
-import org.apache.drill.common.logical.data.Join;
-import org.apache.drill.common.logical.data.Limit;
-import org.apache.drill.common.logical.data.LogicalOperator;
-import org.apache.drill.common.logical.data.Order;
-import org.apache.drill.common.logical.data.Project;
-import org.apache.drill.common.logical.data.RunningAggregate;
-import org.apache.drill.common.logical.data.Scan;
-import org.apache.drill.common.logical.data.Sequence;
-import org.apache.drill.common.logical.data.Store;
-import org.apache.drill.common.logical.data.Transform;
-import org.apache.drill.common.logical.data.Union;
-import org.apache.drill.common.logical.data.Window;
-import org.apache.drill.common.logical.data.Writer;
-
-
-public abstract class AbstractLogicalVisitor<T, X, E extends Throwable> implements LogicalVisitor<T, X, E> {
-
-    public T visitOp(LogicalOperator op, X value) throws E{
-        throw new UnsupportedOperationException(String.format(
-                "The LogicalVisitor of type %s does not currently support visiting the PhysicalOperator type %s.", this
-                .getClass().getCanonicalName(), op.getClass().getCanonicalName()));
-    }
-
-    @Override
-    public T visitScan(Scan scan, X value) throws E {
-        return visitOp(scan, value);
-    }
-
-    @Override
-    public T visitStore(Store store, X value) throws E {
-        return visitOp(store, value);
-    }
-
-    @Override
-    public T visitFilter(Filter filter, X value) throws E {
-        return visitOp(filter, value);
-    }
-
-    @Override
-    public T visitFlatten(Flatten flatten, X value) throws E {
-        return visitOp(flatten, value);
-    }
-
-    @Override
-    public T visitProject(Project project, X value) throws E {
-        return visitOp(project, value);
-    }
-
-    @Override
-    public T visitOrder(Order order, X value) throws E {
-        return visitOp(order, value);
-    }
-
-    @Override
-    public T visitJoin(Join join, X value) throws E {
-        return visitOp(join, value);
-    }
-
-    @Override
-    public T visitLimit(Limit limit, X value) throws E {
-        return visitOp(limit, value);
-    }
-
-    @Override
-    public T visitRunningAggregate(RunningAggregate runningAggregate, X value) throws E {
-        return visitOp(runningAggregate, value);
-    }
-
-    @Override
-    public T visitGroupingAggregate(GroupingAggregate groupBy, X value) throws E {
-      return visitOp(groupBy, value);
-    }
-
-    @Override
-    public T visitSequence(Sequence sequence, X value) throws E {
-        return visitOp(sequence, value);
-    }
-
-    @Override
-    public T visitTransform(Transform transform, X value) throws E {
-        return visitOp(transform, value);
-    }
-
-    @Override
-    public T visitUnion(Union union, X value) throws E {
-        return visitOp(union, value);
-    }
-
-    @Override
-    public T visitWindow(Window window, X value) throws E {
-        return visitOp(window, value);
-    }
-
-    @Override
-    public T visitValues(Values constant, X value) throws E {
-       return visitOp(constant, value);
-    }
-
-    @Override
-    public T visitWriter(Writer writer, X value) throws E {
-      return visitOp(writer, value);
-    }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/visitors/LogicalVisitor.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/visitors/LogicalVisitor.java b/common/src/main/java/org/apache/drill/common/logical/data/visitors/LogicalVisitor.java
deleted file mode 100644
index 1e07dc6..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/visitors/LogicalVisitor.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.logical.data.visitors;
-
-
-import org.apache.drill.common.logical.data.Values;
-import org.apache.drill.common.logical.data.Filter;
-import org.apache.drill.common.logical.data.Flatten;
-import org.apache.drill.common.logical.data.GroupingAggregate;
-import org.apache.drill.common.logical.data.Join;
-import org.apache.drill.common.logical.data.Limit;
-import org.apache.drill.common.logical.data.Order;
-import org.apache.drill.common.logical.data.Project;
-import org.apache.drill.common.logical.data.RunningAggregate;
-import org.apache.drill.common.logical.data.Scan;
-import org.apache.drill.common.logical.data.Sequence;
-import org.apache.drill.common.logical.data.Store;
-import org.apache.drill.common.logical.data.Transform;
-import org.apache.drill.common.logical.data.Union;
-import org.apache.drill.common.logical.data.Window;
-import org.apache.drill.common.logical.data.Window;
-import org.apache.drill.common.logical.data.Writer;
-
-/**
- * Visitor class designed to traversal of a operator tree.  Basis for a number of operator manipulations including fragmentation and materialization.
- * @param <RETURN> The class associated with the return of each visit method.
- * @param <EXTRA> The class object associated with additional data required for a particular operator modification.
- * @param <EXCEP> An optional exception class that can be thrown when a portion of a modification or traversal fails.  Must extend Throwable.  In the case where the visitor does not throw any caught exception, this can be set as RuntimeException.
- */
-public interface LogicalVisitor<RETURN, EXTRA, EXCEP extends Throwable> {
-    static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(LogicalVisitor.class);
-
-
-    public RETURN visitScan(Scan scan, EXTRA value) throws EXCEP;
-    public RETURN visitStore(Store store, EXTRA value) throws EXCEP;
-    public RETURN visitGroupingAggregate(GroupingAggregate groupBy, EXTRA value) throws EXCEP;
-    public RETURN visitFilter(Filter filter, EXTRA value) throws EXCEP;
-    public RETURN visitFlatten(Flatten flatten, EXTRA value) throws EXCEP;
-
-    public RETURN visitProject(Project project, EXTRA value) throws EXCEP;
-    public RETURN visitValues(Values constant, EXTRA value) throws EXCEP;
-    public RETURN visitOrder(Order order, EXTRA value) throws EXCEP;
-    public RETURN visitJoin(Join join, EXTRA value) throws EXCEP;
-    public RETURN visitLimit(Limit limit, EXTRA value) throws EXCEP;
-    public RETURN visitRunningAggregate(RunningAggregate runningAggregate, EXTRA value) throws EXCEP;
-    public RETURN visitSequence(Sequence sequence, EXTRA value) throws EXCEP;
-    public RETURN visitTransform(Transform transform, EXTRA value) throws EXCEP;
-    public RETURN visitUnion(Union union, EXTRA value) throws EXCEP;
-    public RETURN visitWindow(Window window, EXTRA value) throws EXCEP;
-    public RETURN visitWriter(Writer writer, EXTRA value) throws EXCEP;
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/data/visitors/package-info.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/data/visitors/package-info.java b/common/src/main/java/org/apache/drill/common/logical/data/visitors/package-info.java
deleted file mode 100644
index 9b82bb3..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/data/visitors/package-info.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Visitors for Drill logical plan graphs.
- */
-package org.apache.drill.common.logical.data.visitors;

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/logical/package-info.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/logical/package-info.java b/common/src/main/java/org/apache/drill/common/logical/package-info.java
deleted file mode 100644
index 1f88f06..0000000
--- a/common/src/main/java/org/apache/drill/common/logical/package-info.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-/**
- * Storage plugin interfaces and logical plan representation.
- *
- * This package includes the interface for storage and format plugins for Drill
- * as well as the top level class for representing a Drill logical plan and a
- * builder for constructing plans.
- */
-package org.apache.drill.common.logical;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/util/AbstractDynamicBean.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/util/AbstractDynamicBean.java b/common/src/main/java/org/apache/drill/common/util/AbstractDynamicBean.java
deleted file mode 100644
index 07a3620..0000000
--- a/common/src/main/java/org/apache/drill/common/util/AbstractDynamicBean.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.util;
-
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.drill.common.exceptions.LogicalPlanParsingException;
-
-import com.fasterxml.jackson.annotation.JsonAnyGetter;
-import com.fasterxml.jackson.annotation.JsonAnySetter;
-import com.fasterxml.jackson.core.JsonParser.Feature;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.databind.node.ObjectNode;
-
-/**
- * Captures all properties and turns them into an object node for late bind conversion.
- */
-public abstract class AbstractDynamicBean {
-  static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(AbstractDynamicBean.class);
-
-  private static volatile ObjectMapper MAPPER;
-
-  private ObjectNode objectNode = new ObjectNode(null);
-
-  @JsonAnySetter
-  public void _anySetter(String name, JsonNode value){
-    objectNode.put(name, value);
-  }
-
-  @JsonAnyGetter
-  public Map<String,JsonNode> _anyGetter() {
-    Map<String, JsonNode> unknowns = new HashMap<String, JsonNode>();
-
-    for(Iterator<Entry<String, JsonNode>> i = objectNode.fields(); i.hasNext(); ){
-      Entry<String, JsonNode> e = i.next();
-      unknowns.put(e.getKey(), e.getValue());
-    }
-    return unknowns;
-  }
-
-  public <T> T getWith(Class<T> c){
-    try {
-      return getMapper().treeToValue(objectNode, c);
-    } catch (JsonProcessingException e) {
-      throw new LogicalPlanParsingException(String.format("Failure while trying to convert late bound json type to type of %s.", c.getCanonicalName()), e);
-    }
-  }
-
-
-  private static synchronized ObjectMapper getMapper(){
-    if(MAPPER == null){
-      ObjectMapper mapper = new ObjectMapper();
-      mapper.enable(SerializationFeature.INDENT_OUTPUT);
-      mapper.configure(Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
-      mapper.configure(Feature.ALLOW_COMMENTS, true);
-      MAPPER = mapper;
-    }
-    return MAPPER;
-  }
-}

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/main/java/org/apache/drill/common/util/Hook.java
----------------------------------------------------------------------
diff --git a/common/src/main/java/org/apache/drill/common/util/Hook.java b/common/src/main/java/org/apache/drill/common/util/Hook.java
deleted file mode 100644
index 36ddb4e..0000000
--- a/common/src/main/java/org/apache/drill/common/util/Hook.java
+++ /dev/null
@@ -1,79 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.util;
-
-import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-import com.google.common.base.Function;
-
-/**
- * Collection of hooks that can be set by observers and are executed at various
- * parts of the query preparation process.
- *
- * <p>For testing and debugging rather than for end-users.</p>
- */
-public enum Hook {
-  /** Called with the logical plan. */
-  LOGICAL_PLAN;
-
-  private final List<Function<Object, Object>> handlers =
-      new CopyOnWriteArrayList<>();
-
-  /** Adds a handler for this Hook.
-   *
-   * <p>Returns a {@link Hook.Closeable} so that you can use the following
-   * try-finally pattern to prevent leaks:</p>
-   *
-   * <blockquote><pre>
-   *     final Hook.Closeable closeable = Hook.FOO.add(HANDLER);
-   *     try {
-   *         ...
-   *     } finally {
-   *         closeable.close();
-   *     }</pre>
-   * </blockquote>
-   */
-  public Closeable add(final Function handler) {
-    handlers.add(handler);
-    return new Closeable() {
-      public void close() {
-        remove(handler);
-      }
-    };
-  }
-
-  /** Removes a handler from this Hook. */
-  private boolean remove(Function handler) {
-    return handlers.remove(handler);
-  }
-
-  /** Runs all handlers registered for this Hook, with the given argument. */
-  public void run(Object arg) {
-    for (Function<Object, Object> handler : handlers) {
-      handler.apply(arg);
-    }
-  }
-
-  /** Removes a Hook after use. */
-  public interface Closeable extends AutoCloseable {
-    void close(); // override, removing "throws"
-  }
-}
-
-// End Hook.java

http://git-wip-us.apache.org/repos/asf/drill/blob/44dea433/common/src/test/java/org/apache/drill/common/expression/PathSegmentTests.java
----------------------------------------------------------------------
diff --git a/common/src/test/java/org/apache/drill/common/expression/PathSegmentTests.java b/common/src/test/java/org/apache/drill/common/expression/PathSegmentTests.java
deleted file mode 100644
index 97cd578..0000000
--- a/common/src/test/java/org/apache/drill/common/expression/PathSegmentTests.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.common.expression;
-
-import static org.junit.Assert.assertEquals;
-
-import org.apache.drill.test.DrillTest;
-import org.junit.Test;
-
-public class PathSegmentTests extends DrillTest {
-  protected PathSegment makeArraySegment(final int len, final PathSegment tail) {
-    PathSegment node = tail;
-    for (int i = 0; i < len; i++) {
-      node = new PathSegment.ArraySegment(node);
-    }
-    return node;
-  }
-
-  @Test
-  public void testIfMultiLevelCloneWorks() {
-    final int levels = 10;
-    final PathSegment segment = new PathSegment.NameSegment("test", makeArraySegment(levels, null));
-    final PathSegment clone = segment.clone();
-    assertEquals("result of clone & original segments must be identical", segment, clone);
-
-    final PathSegment tail = new PathSegment.NameSegment("tail");
-    final PathSegment newSegment = new PathSegment.NameSegment("test", makeArraySegment(levels, tail));
-    final PathSegment newClone = segment.cloneWithNewChild(tail);
-    assertEquals("result of cloneWithChild & original segment must be identical", newSegment, newClone);
-  }
-}


Mime
View raw message