Tim Armstrong has posted comments on this change.

Change subject: IMPALA-4192: Avoid updating Expr's states from ExprContext
......................................................................


Patch Set 2:

I do think we need three classes here (the documentation and maybe naming could 
definitely be improved). The Expr class is the constant information about the 
expression itself - the ExprContext contains thread-local state for the whole 
expr tree. The FunctionContext contains thread-local state for specific expr 
nodes that need it and is part of the UDF interface. 

I think having three different classes with those scopes is necessary since 
there's state that needs to be stored in each.

I feel like ExprContext is the confusing part - the other two mostly make 
sense. Maybe it would be clearer if ExprContext was something like 
ExprEvalContext or ExprTreeContext? I think that's the main thing that throws 
me off since the cardinality of ExprContext compared to Expr isn't obvious 
based on the name.

-- 
To view, visit http://gerrit.cloudera.org:8080/5483
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-MessageType: comment
Gerrit-Change-Id: Iefdc9aeeba033355cb9497e3a5d2363627dcf2f3
Gerrit-PatchSet: 2
Gerrit-Project: Impala-ASF
Gerrit-Branch: master
Gerrit-Owner: Michael Ho <[email protected]>
Gerrit-Reviewer: Dan Hecht <[email protected]>
Gerrit-Reviewer: Marcel Kornacker <[email protected]>
Gerrit-Reviewer: Michael Ho <[email protected]>
Gerrit-Reviewer: Tim Armstrong <[email protected]>
Gerrit-HasComments: No

Reply via email to