[
https://issues.apache.org/jira/browse/HIVE-164?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Zheng Shao updated HIVE-164:
----------------------------
Attachment: HIVE-164.8.patch
@Ashish:
Implicit type conversion: Opened HIVE-450.
Nulls: We do allow Nulls: see ql/src/test/queries/clientpositive/udf_case.q.
The reason that udf_case_type_wrong3.q does not work is because there is an INT
after THEN and a STRING after ELSE.
Partition pruning and predicate push-down: Added ppd_udf_case.q and fixed ppd
to handle GenericUDF
{code}
set hive.optimize.ppd=true;
EXPLAIN
SELECT *
FROM srcpart a JOIN srcpart b
ON a.key = b.key
WHERE a.ds = '2008-04-08' AND
b.ds = '2008-04-08' AND
CASE a.key
WHEN '27' THEN TRUE
WHEN '38' THEN FALSE
ELSE NULL
END
ORDER BY a.key, a.value, a.ds, a.hr, b.key, b.value, b.ds, b.hr;
SELECT *
FROM srcpart a JOIN srcpart b
ON a.key = b.key
WHERE a.ds = '2008-04-08' AND
b.ds = '2008-04-08' AND
CASE a.key
WHEN '27' THEN TRUE
WHEN '38' THEN FALSE
ELSE NULL
END
ORDER BY a.key, a.value, a.ds, a.hr, b.key, b.value, b.ds, b.hr;
{code}
@Namit:
Added udf_case_column_pruning.q
{code}
EXPLAIN
SELECT CASE a.key
WHEN '1' THEN 2
WHEN '3' THEN 4
ELSE 5
END as key
FROM src a JOIN src b
ON a.key = b.key
ORDER BY key LIMIT 10;
SELECT CASE a.key
WHEN '1' THEN 2
WHEN '3' THEN 4
ELSE 5
END as key
FROM src a JOIN src b
ON a.key = b.key
ORDER BY key LIMIT 10;
{code}
> Support CASE statement using GenericUDF
> ---------------------------------------
>
> Key: HIVE-164
> URL: https://issues.apache.org/jira/browse/HIVE-164
> Project: Hadoop Hive
> Issue Type: New Feature
> Components: Query Processor
> Affects Versions: 0.4.0
> Reporter: Zheng Shao
> Assignee: Zheng Shao
> Fix For: 0.4.0
>
> Attachments: HIVE-164.4.patch, HIVE-164.5.patch,
> HIVE-164.6.code-only.patch, HIVE-164.6.patch, HIVE-164.7.code-only.patch,
> HIVE-164.7.patch, HIVE-164.8.patch
>
>
> See http://dev.mysql.com/doc/refman/5.0/en/control-flow-functions.html for
> details.
> Syntax:
> {code}
> CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result
> ...] [<ELSE result] END
> CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE
> result] END
> {code}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.