[
https://issues.apache.org/jira/browse/SPARK-2155?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zongheng Yang updated SPARK-2155:
---------------------------------
Description:
Currently we translate CASE KEY WHEN to CASE WHEN, hence incurring redundant
evaluations of the key expression. Relevant discussions here:
https://github.com/apache/spark/pull/1055/files#r13784248
If we are very in need of support for effectful key expressions, at least we
can resort to the baseline approach of having both CaseWhen and CaseKeyWhen as
expressions, which seem to introduce much code duplication (e.g. see
https://github.com/concretevitamin/spark/blob/47d406a58d129e5bba68bfadf9dd1faa9054d834/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala#L216
for a sketch implementation).
was:
Currently we translate CASE KEY WHEN to CASE WHEN, hence incurring redundant
evaluations of the key expression. Relevant discussions here:
https://github.com/apache/spark/pull/1055/files#r13784248
If we are very in need of support for effectful key expressions, at least we
can resort to the baseline approach of having both CaseWhen and CaseKeyWhen as
expressions, which share a lot of code duplications (e.g. see
https://github.com/concretevitamin/spark/blob/47d406a58d129e5bba68bfadf9dd1faa9054d834/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala#L216
for a sketch implementation).
> Support effectful / non-deterministic key expressions in CASE WHEN statements
> -----------------------------------------------------------------------------
>
> Key: SPARK-2155
> URL: https://issues.apache.org/jira/browse/SPARK-2155
> Project: Spark
> Issue Type: Bug
> Components: SQL
> Reporter: Zongheng Yang
>
> Currently we translate CASE KEY WHEN to CASE WHEN, hence incurring redundant
> evaluations of the key expression. Relevant discussions here:
> https://github.com/apache/spark/pull/1055/files#r13784248
> If we are very in need of support for effectful key expressions, at least we
> can resort to the baseline approach of having both CaseWhen and CaseKeyWhen
> as expressions, which seem to introduce much code duplication (e.g. see
> https://github.com/concretevitamin/spark/blob/47d406a58d129e5bba68bfadf9dd1faa9054d834/sql/catalyst/src/main/scala/org/apache/spark/sql/catalyst/expressions/predicates.scala#L216
> for a sketch implementation).
--
This message was sent by Atlassian JIRA
(v6.2#6252)