> On March 10, 2015, 4:52 a.m., Jacques Nadeau wrote:
> > exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlOperator.java,
> >  line 43
> > <https://reviews.apache.org/r/31871/diff/1/?file=889812#file889812line43>
> >
> >     Can you update this interface to be isDeterministic?  Update func 
> > holder as well.  Simply keep the old interface of isRandom() and mark as 
> > deprecated.  Additionally, please provide a default constructor that is 
> > isDeterministic = true so that we don't have to change all the places were 
> > we assumed that behavior.
> 
> Jason Altekruse wrote:
>     I will start this work, but I was trying to avoid confusion within Drill 
> as much as possible, as well as major refactoring. If we want to change this 
> pattern everywhere, that would include where we define all of the 
> non-deterministic UDFs (although admittedly there aren't too many of them). I 
> had chosen this point as it was exactly where we meet with the Calcite API.

I'm nervous about this being inconsistent within Drill. I believe that if we 
are going to try to be consistent with Calcite, we should change how we refer 
to this property everywhere. I have a patch that does the renaming, UDF updates 
and change the interface to Hive UDFS that I think is necessary to make this 
complete change. I would advocate for splitting this into a separate JIRA if we 
want to make the change.

I have updated all current references to this modified constructor in the patch 
already posted, so there is no need for a default constructor that does not 
provide determinism. While indeterministic functions are rare, I think it would 
be best to leave this required so any new function types defined will be 
explicitly created to fill this field appropriately.


- Jason


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/31871/#review75852
-----------------------------------------------------------


On March 10, 2015, 11:21 p.m., Jason Altekruse wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/31871/
> -----------------------------------------------------------
> 
> (Updated March 10, 2015, 11:21 p.m.)
> 
> 
> Review request for drill and Jacques Nadeau.
> 
> 
> Bugs: DRILL-2406
>     https://issues.apache.org/jira/browse/DRILL-2406
> 
> 
> Repository: drill-git
> 
> 
> Description
> -------
> 
> To enable planning rules to take advantage of constant expressions in 
> queries, or to allow them to run queries against small datasets, such as 
> partition information we need to e able to evaluate expressions at planning 
> time. Expression evaluation in the regular expecuation path is relatively 
> expensive, as it invovles java code generation, compilation and JITing 
> expression trees. An interpreted expression system was added recently to 
> allow evaluating an expression without generating java code at runtime. This 
> patch exposes that work (after some refactorings in 2143 and the first part 
> of 2406) to the planning context for use in optimizer rules.
> 
> 
> Diffs
> -----
> 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/DrillFunctionRegistry.java
>  00aaec6 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/memory/BufferAllocator.java
>  30b905f 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/memory/TopLevelAllocator.java
>  2a28bcb 
>   exec/java-exec/src/main/java/org/apache/drill/exec/ops/BufferManager.java 
> PRE-CREATION 
>   exec/java-exec/src/main/java/org/apache/drill/exec/ops/FragmentContext.java 
> e413921 
>   exec/java-exec/src/main/java/org/apache/drill/exec/ops/QueryContext.java 
> c881432 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/fragment/SimpleParallelizer.java
>  f8d1803 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/logical/DrillReduceAggregatesRule.java
>  93fff35 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/InsertLocalExchangeVisitor.java
>  907fcb1 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/planner/sql/DrillSqlOperator.java
>  6b54c43 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/Foreman.java 
> 409450f 
>   
> exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java
>  4ab3cc0 
>   
> exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestLocalExchange.java
>  fc1c6b9 
>   
> exec/java-exec/src/test/java/org/apache/drill/exec/pop/TestFragmentChecker.java
>  07d310a 
> 
> Diff: https://reviews.apache.org/r/31871/diff/
> 
> 
> Testing
> -------
> 
> Cluster tests completed, waiting on unit tests.
> 
> 
> Thanks,
> 
> Jason Altekruse
> 
>

Reply via email to