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 <[email protected]> Authored: Wed Oct 17 16:33:43 2012 -0700 Committer: tdunning <[email protected]> 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 }
