Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
Impala 2.8.0
Description
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.
Attachments
Issue Links
- blocks
-
IMPALA-4297 Codegen AppendRows() for HdfsTableSink
-
- Open
-
- is duplicated by
-
IMPALA-4358 codegen case when for inserts
-
- Resolved
-
-
IMPALA-3101 AnalyticEvalNode should use codegened TupleRowComparator instead of PrevRowCompare
-
- Resolved
-
- is related to
-
IMPALA-4192 Pull all expressions in a fragment into QueryState
-
- Resolved
-
- relates to
-
IMPALA-4233 Revisit handling of expr codegen failures
-
- Resolved
-