[ 
https://issues.apache.org/jira/browse/PHOENIX-1030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14162274#comment-14162274
 ] 

James Taylor commented on PHOENIX-1030:
---------------------------------------

Thanks, [~tdsilva]. Here's some feedback on some minor stuff:
- I don't think you need a look here, as you should be able to index into 
BOOLEAN_EXPRESSIONS using the child.getDeterminism().ordinal() value.
{code}
     public static boolean isFalse(Expression child) {
-        return child == FALSE_EXPRESSION || child == ND_FALSE_EXPRESSION;
+       for (Determinism determinism : Determinism.values()) {
+               if (child==BOOLEAN_EXPRESSIONS[determinism.ordinal()]) 
+                       return true;
+       }
+       return false;
     }
     
     public static boolean isTrue(Expression child) {
-        return child == TRUE_EXPRESSION || child == ND_TRUE_EXPRESSION;
+       for (Determinism determinism : Determinism.values()) {
+               if 
(child==BOOLEAN_EXPRESSIONS[Determinism.values().length+determinism.ordinal()]) 
+                       return true;
+       }
+       return false;
     }
{code}
- How about some static helper functions for these?
{code}
NULL_EXPRESSIONS[determinism.ordinal()]
BOOLEAN_EXPRESSIONS[Determinism.values().length+determinism.ordinal()]
TYPED_NULL_EXPRESSIONS[type.ordinal()+PDataType.values().length*determinism.ordinal()]
{code}


> Change Expression.isDeterministic() to return a enum of values ALWAYS, 
> PER_STATEMENT, PER_ROW
> ---------------------------------------------------------------------------------------------
>
>                 Key: PHOENIX-1030
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-1030
>             Project: Phoenix
>          Issue Type: Improvement
>            Reporter: Thomas D'Silva
>            Assignee: Thomas D'Silva
>         Attachments: PHOENIX-1030-3.0.patch, PHOENIX-1030-3.0.patch, 
> PHOENIX-1030-3.0.patch, PHOENIX-1030-3.0.patch, PHOENIX-1030-4.0.patch, 
> PHOENIX-1030-4.0.patch, PHOENIX-1030-master.patch
>
>
> Change Expression.isDeterministic() to return an ENUM with three values
> DETERMINISTIC -  the expression returns the same output every time given the 
> same input.
> UNDETERMINISTIC_ROW - the expression should be computed for every row
> UNDETERMINISTIC_STMT - the expression should be be computed for a given 
> statement only once
> See PHOENIX-1001



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to