> On Sept. 21, 2014, 5:44 p.m., Steven Phillips wrote: > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/InterpreterEvalator.java, > > line 94 > > <https://reviews.apache.org/r/25877/diff/1/?file=699148#file699148line94> > > > > Is it necessary to create a new DrillSimpleFuncInterpreter for every > > record? Couldn't "interpreter" be created once per batch, and doSetup run > > once per batch, and then doEval run for every record? > > Jacques Nadeau wrote: > Agreed. Interpreter should be created once and be reused.
I agree. Ideally, we should create interpreter once. The doSetup() should be called once, similar to the compile & execution model. The first implementation did not pay close attention to performance optimization. Let me think about how to optimize. - Jinfeng ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/25877/#review54101 ----------------------------------------------------------- On Sept. 21, 2014, 4:42 p.m., Jinfeng Ni wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/25877/ > ----------------------------------------------------------- > > (Updated Sept. 21, 2014, 4:42 p.m.) > > > Review request for drill and Steven Phillips. > > > Repository: drill-git > > > Description > ------- > > This patch provides the interpreted model to evaluate a Drill expression, > consists of constants, DrillSimpleFunction, Case Expression, Boolean > operator. > > It does not switch the existing Drill's execution framework to this new > model. As the next step of work, we will modify the existing > ProjectRecordBatch / FilterRecordBatch, such that the projected expression, > or filter expression would use this interpreted model, when necessary. > > In this patch, the only way to use this new interpreted model is to through > unit test ( see ExpressionInterpreterTest.java for example). > > We add a new mvn module under drill_root/exec. The new module is the place > where all the static function interpreters will be generated into, and > compiled, during maven build process. > > > Diffs > ----- > > exec/interpreter/pom.xml PRE-CREATION > > exec/interpreter/src/test/java/org/apache/drill/exec/expr/ExpressionInterpreterTest.java > PRE-CREATION > exec/java-exec/src/main/codegen/templates/TypeHelper.java 9bb2507 > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillBooleanOPHolder.java > 9032d37 > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFuncHolder.java > 1852731 > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillSimpleFuncHolder.java > 4731200 > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionConverter.java > 402a6fc > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/DrillFuncInterpreter.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/DrillSimpleFuncInterpreter.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/InterpreterBuilder.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/InterpreterEvalator.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/interpreter/InterpreterGenerator.java > PRE-CREATION > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/holders/ComplexHolder.java > e1025df > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/holders/RepeatedListHolder.java > 09746da > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/holders/RepeatedMapHolder.java > 247f75e > > exec/java-exec/src/main/java/org/apache/drill/exec/expr/holders/ValueHolder.java > 5c2adc6 > > exec/java-exec/src/main/java/org/apache/drill/exec/vector/ValueHolderHelper.java > 31afb6f > exec/pom.xml fe2a75e > > Diff: https://reviews.apache.org/r/25877/diff/ > > > Testing > ------- > > 1. Run existing JUnit test suite. > > 2. Add a new ExpressionInterpreterTest.java. > > > Thanks, > > Jinfeng Ni > >
