You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues-all@impala.apache.org by "Pooja Nilangekar (JIRA)" <ji...@apache.org> on 2018/09/05 20:49:00 UTC
[jira] [Commented] (IMPALA-4356) Automatically codegen expressions
with any root Expr node
[ https://issues.apache.org/jira/browse/IMPALA-4356?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16604922#comment-16604922 ]
Pooja Nilangekar commented on IMPALA-4356:
------------------------------------------
There is a [TODO|https://github.com/apache/impala/blob/3433d8fe1f5a24c87ee80c9d86e79c4ecda87490/be/src/exprs/scalar-fn-call.cc#L421] in ScalarFnCall. It states that we should avoid calling codegen->AddFunctionToJit for each of the child exprs. This change will make this problem widespread because we will now call the function for most objects which inherit from ScalarExpr. Do we have a Jira to track this issue? Also, does it make sense to address the TODO with this change?
> Automatically codegen expressions with any root Expr node
> ---------------------------------------------------------
>
> Key: IMPALA-4356
> URL: https://issues.apache.org/jira/browse/IMPALA-4356
> Project: IMPALA
> Issue Type: Improvement
> Components: Backend
> Affects Versions: Impala 2.8.0
> Reporter: Tim Armstrong
> Assignee: Pooja Nilangekar
> Priority: Major
> Labels: codegen
>
> Currently Impala only automatically codegens expression subtrees with ScalarFnCall at the root. This is the expression type used to implement many but not all expressions (including most builtin operators). One example of an expression that is not automatically codegened is "case" statements.
> The crux of this is to move ScalarFnCall::scalar_fn_wrapper_ into ScalarExpr (and probably rename it). There are some consequential changes required to make this work. Instead of each ScalarExpr subclass overriding Get*Val(), I think Get*Val() should be a non-virtual method of ScalarExpr that either calls the codegen'd function or calls into Get*ValInterpreted(), which would be the new virtual function.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-all-unsubscribe@impala.apache.org
For additional commands, e-mail: issues-all-help@impala.apache.org