You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by td...@apache.org on 2012/10/18 23:04:24 UTC

[3/4] git commit: DRILL-5 - dropped OperatorReference

DRILL-5 - dropped OperatorReference


Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/efeec4d7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/efeec4d7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/efeec4d7

Branch: refs/heads/master
Commit: efeec4d7bfecff53239be83d35f62519710f8dc1
Parents: 1d66bc7
Author: tdunning <td...@apache.org>
Authored: Wed Oct 17 16:33:43 2012 -0700
Committer: tdunning <td...@apache.org>
Committed: Wed Oct 17 16:33:43 2012 -0700

----------------------------------------------------------------------
 .../org/apache/drill/plan/PhysicalInterpreter.java |    5 +-
 .../plan/physical/operators/ArithmeticOp.java      |   24 +++++-----
 .../apache/drill/plan/physical/operators/Bind.java |    8 ++--
 .../drill/plan/physical/operators/ConstantOp.java  |    2 +-
 .../drill/plan/physical/operators/Filter.java      |   10 ++--
 .../drill/plan/physical/operators/Operator.java    |    4 +-
 .../plan/physical/operators/OperatorReference.java |   39 ---------------
 .../drill/plan/physical/operators/ScanJson.java    |    6 +-
 8 files changed, 29 insertions(+), 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/efeec4d7/sandbox/plan-parser/src/main/java/org/apache/drill/plan/PhysicalInterpreter.java
----------------------------------------------------------------------
diff --git a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/PhysicalInterpreter.java b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/PhysicalInterpreter.java
index dd25507..3058206 100644
--- a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/PhysicalInterpreter.java
+++ b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/PhysicalInterpreter.java
@@ -24,7 +24,6 @@ import org.apache.drill.plan.ast.Op;
 import org.apache.drill.plan.ast.Plan;
 import org.apache.drill.plan.physical.operators.DataListener;
 import org.apache.drill.plan.physical.operators.Operator;
-import org.apache.drill.plan.physical.operators.OperatorReference;
 
 import java.lang.reflect.InvocationTargetException;
 import java.util.Collection;
@@ -44,7 +43,7 @@ public class PhysicalInterpreter implements DataListener {
     private final List<Operator> ops;
 
     public PhysicalInterpreter(Plan prog) throws InvocationTargetException, NoSuchMethodException, InstantiationException, IllegalAccessException {
-        Map<Integer, OperatorReference> bindings = Maps.newHashMap();
+        Map<Integer, Operator> bindings = Maps.newHashMap();
         ops = Lists.newArrayList();
 
         for (Op op : prog.getStatements()) {
@@ -58,7 +57,7 @@ public class PhysicalInterpreter implements DataListener {
 
         Collection<Arg> outputs = prog.getOutputs();
         for (Arg output : outputs) {
-            bindings.get(output.asSymbol().getInt()).getOp().addDataListener(this);
+            bindings.get(output.asSymbol().getInt()).addDataListener(this);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/efeec4d7/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ArithmeticOp.java
----------------------------------------------------------------------
diff --git a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ArithmeticOp.java b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ArithmeticOp.java
index b994628..516feff 100644
--- a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ArithmeticOp.java
+++ b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ArithmeticOp.java
@@ -39,11 +39,11 @@ public abstract class ArithmeticOp extends EvalOperator {
 
     public EvalOperator left, right;
 
-    public ArithmeticOp(Op op, Map<Integer, OperatorReference> bindings) {
+    public ArithmeticOp(Op op, Map<Integer, Operator> bindings) {
         checkArity(op, 2, 1);
 
         // bind our output
-        bindings.put(op.getOutputs().get(0).asSymbol().getInt(), new OperatorReference(this, 0));
+        bindings.put(op.getOutputs().get(0).asSymbol().getInt(), this);
     }
 
     @Override
@@ -63,7 +63,7 @@ public abstract class ArithmeticOp extends EvalOperator {
     }
 
     @Override
-    public void link(Op op, Map<Integer, OperatorReference> bindings) {
+    public void link(Op op, Map<Integer, Operator> bindings) {
         checkArity(op, 2, 1);
 
         List<Arg> in = op.getInputs();
@@ -71,11 +71,11 @@ public abstract class ArithmeticOp extends EvalOperator {
         right = extractOperand(in.get(1), bindings);
     }
 
-    private EvalOperator extractOperand(Arg arg, Map<Integer, ? extends OperatorReference> bindings) {
+    private EvalOperator extractOperand(Arg arg, Map<Integer, Operator> bindings) {
         if (arg instanceof Arg.Number) {
             return new ConstantOp(((Arg.Number) arg).doubleValue());
         } else if (arg instanceof Arg.Symbol) {
-            return (EvalOperator) bindings.get(arg.asSymbol().getInt()).getOp();
+            return (EvalOperator) bindings.get(arg.asSymbol().getInt());
         } else {
             throw new IllegalArgumentException("Wanted constant or reference to another operator");
         }
@@ -84,7 +84,7 @@ public abstract class ArithmeticOp extends EvalOperator {
     public abstract Object eval(double x, double y);
 
     public static class GT extends ArithmeticOp {
-        public GT(Op op, Map<Integer, OperatorReference> bindings) {
+        public GT(Op op, Map<Integer, Operator> bindings) {
             super(op, bindings);
         }
 
@@ -95,7 +95,7 @@ public abstract class ArithmeticOp extends EvalOperator {
     }
 
     public static class LT extends ArithmeticOp {
-        public LT(Op op, Map<Integer, OperatorReference> bindings) {
+        public LT(Op op, Map<Integer, Operator> bindings) {
             super(op, bindings);
         }
 
@@ -106,7 +106,7 @@ public abstract class ArithmeticOp extends EvalOperator {
     }
 
     public static class EQUALS extends ArithmeticOp {
-        public EQUALS(Op op, Map<Integer, OperatorReference> bindings) {
+        public EQUALS(Op op, Map<Integer, Operator> bindings) {
             super(op, bindings);
         }
 
@@ -117,7 +117,7 @@ public abstract class ArithmeticOp extends EvalOperator {
     }
 
     public static class PLUS extends ArithmeticOp {
-        public PLUS(Op op, Map<Integer, OperatorReference> bindings) {
+        public PLUS(Op op, Map<Integer, Operator> bindings) {
             super(op, bindings);
         }
 
@@ -129,7 +129,7 @@ public abstract class ArithmeticOp extends EvalOperator {
 
 
     public static class MINUS extends ArithmeticOp {
-        public MINUS(Op op, Map<Integer, OperatorReference> bindings) {
+        public MINUS(Op op, Map<Integer, Operator> bindings) {
             super(op, bindings);
         }
 
@@ -141,7 +141,7 @@ public abstract class ArithmeticOp extends EvalOperator {
 
 
     public static class TIMES extends ArithmeticOp {
-        public TIMES(Op op, Map<Integer, OperatorReference> bindings) {
+        public TIMES(Op op, Map<Integer, Operator> bindings) {
             super(op, bindings);
         }
 
@@ -153,7 +153,7 @@ public abstract class ArithmeticOp extends EvalOperator {
 
 
     public static class DIVIDE extends ArithmeticOp {
-        public DIVIDE(Op op, Map<Integer, OperatorReference> bindings) {
+        public DIVIDE(Op op, Map<Integer, Operator> bindings) {
             super(op, bindings);
         }
 

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/efeec4d7/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Bind.java
----------------------------------------------------------------------
diff --git a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Bind.java b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Bind.java
index ca99afc..329272e 100644
--- a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Bind.java
+++ b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Bind.java
@@ -35,17 +35,17 @@ public class Bind extends EvalOperator {
 
     private String name;
 
-    public Bind(Op op, Map<Integer, OperatorReference> bindings) {
+    public Bind(Op op, Map<Integer, Operator> bindings) {
         checkArity(op, 2, 1);
         List<Arg> out = op.getOutputs();
-        bindings.put(out.get(0).asSymbol().getInt(), new OperatorReference(this, 0));
+        bindings.put(out.get(0).asSymbol().getInt(), this);
     }
 
     @Override
-    public void link(Op op, Map<Integer, OperatorReference> bindings) {
+    public void link(Op op, Map<Integer, Operator> bindings) {
         // connect to our inputs
         name = op.getInputs().get(0).asString();
-        schema = bindings.get(op.getInputs().get(1).asSymbol().getInt()).getOp().getSchema();
+        schema = bindings.get(op.getInputs().get(1).asSymbol().getInt()).getSchema();
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/efeec4d7/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ConstantOp.java
----------------------------------------------------------------------
diff --git a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ConstantOp.java b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ConstantOp.java
index 60ed918..568ed67 100644
--- a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ConstantOp.java
+++ b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ConstantOp.java
@@ -32,7 +32,7 @@ public class ConstantOp extends EvalOperator {
     }
 
     @Override
-    public void link(Op op, Map<Integer, OperatorReference> bindings) {
+    public void link(Op op, Map<Integer, Operator> bindings) {
         // ignore
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/efeec4d7/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Filter.java
----------------------------------------------------------------------
diff --git a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Filter.java b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Filter.java
index c677faf..423381b 100644
--- a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Filter.java
+++ b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Filter.java
@@ -36,23 +36,23 @@ public class Filter extends Operator implements DataListener {
 
     private EvalOperator filterExpression = null;
 
-    public Filter(Op op, Map<Integer, OperatorReference> bindings) {
+    public Filter(Op op, Map<Integer, Operator> bindings) {
         checkArity(op, 2, 1);
         List<Arg> outputs = op.getOutputs();
         if (outputs.size() != 1) {
             throw new IllegalArgumentException("filter operator should only have one output");
         }
-        bindings.put(outputs.get(0).asSymbol().getInt(), new OperatorReference(this, 0));
+        bindings.put(outputs.get(0).asSymbol().getInt(), this);
     }
 
     @Override
-    public void link(Op op, Map<Integer, OperatorReference> bindings) {
+    public void link(Op op, Map<Integer, Operator> bindings) {
         List<Arg> inputs = op.getInputs();
         if (inputs.size() != 2) {
             throw new IllegalArgumentException("filter requires two inputs, a filter-expression and a data source.  Got " + inputs.size());
         }
-        filterExpression = (EvalOperator) bindings.get(inputs.get(0).asSymbol().getInt()).getOp();
-        data = bindings.get(inputs.get(1).asSymbol().getInt()).getOp();
+        filterExpression = (EvalOperator) bindings.get(inputs.get(0).asSymbol().getInt());
+        data = bindings.get(inputs.get(1).asSymbol().getInt());
         data.addDataListener(this);
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/efeec4d7/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Operator.java
----------------------------------------------------------------------
diff --git a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Operator.java b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Operator.java
index c537ca1..d34ff9c 100644
--- a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Operator.java
+++ b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/Operator.java
@@ -64,7 +64,7 @@ public abstract class Operator implements Callable<Object> {
         operatorMap.put(name, clazz);
     }
 
-    public static Operator create(Op op, Map<Integer, OperatorReference> bindings) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {
+    public static Operator create(Op op, Map<Integer, Operator> bindings) throws NoSuchMethodException, InvocationTargetException, IllegalAccessException, InstantiationException {
         Class<? extends Operator> c = operatorMap.get(op.getOp());
         if (c == null) {
             throw new IllegalArgumentException(String.format("No such operators as %s", op.getOp()));
@@ -90,7 +90,7 @@ public abstract class Operator implements Callable<Object> {
         throw new UnsupportedOperationException("default no can do");  //To change body of created methods use File | Settings | File Templates.
     }
 
-    public abstract void link(Op op, Map<Integer, OperatorReference> bindings);
+    public abstract void link(Op op, Map<Integer, Operator> bindings);
 
     public Object call() throws Exception {
         // do nothing

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/efeec4d7/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/OperatorReference.java
----------------------------------------------------------------------
diff --git a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/OperatorReference.java b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/OperatorReference.java
deleted file mode 100644
index bfb76b7..0000000
--- a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/OperatorReference.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.apache.drill.plan.physical.operators;
-
-/**
- * Record a reference to a particular output of an Operator.
- */
-public class OperatorReference {
-    private Operator op;
-    private int port;
-
-    public OperatorReference(Operator op, int port) {
-        this.op = op;
-        this.port = port;
-    }
-
-    public Operator getOp() {
-        return op;
-    }
-
-    public int getPort() {
-        return port;
-    }
-}

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/efeec4d7/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ScanJson.java
----------------------------------------------------------------------
diff --git a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ScanJson.java b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ScanJson.java
index 3c7ebe7..55e4ea0 100644
--- a/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ScanJson.java
+++ b/sandbox/plan-parser/src/main/java/org/apache/drill/plan/physical/operators/ScanJson.java
@@ -46,7 +46,7 @@ public class ScanJson extends Operator {
 
     private InputSupplier<InputStreamReader> input;
 
-    public ScanJson(Op op, Map<Integer, OperatorReference> bindings) {
+    public ScanJson(Op op, Map<Integer, Operator> bindings) {
         List<Arg> in = op.getInputs();
         if (in.size() != 1) {
             throw new IllegalArgumentException("scan-json should have exactly one argument (a file name)");
@@ -57,7 +57,7 @@ public class ScanJson extends Operator {
         if (out.size() != 1) {
             throw new IllegalArgumentException("scan-json should have exactly one output");
         }
-        bindings.put(out.get(0).asSymbol().getInt(), new OperatorReference(this, 0));
+        bindings.put(out.get(0).asSymbol().getInt(), this);
     }
 
     public ScanJson(InputSupplier<InputStreamReader> input) throws IOException {
@@ -69,7 +69,7 @@ public class ScanJson extends Operator {
     }
 
     @Override
-    public void link(Op next, Map<Integer, OperatorReference> bindings) {
+    public void link(Op next, Map<Integer, Operator> bindings) {
         // nothing to look for
     }