[
https://issues.apache.org/jira/browse/HIVE-512?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12732828#action_12732828
]
Min Zhou commented on HIVE-512:
-------------------------------
actually, elt return only two types of results in mysql : varbinary, varchar.
varchar will be returned if all arguments are varchars, or varbinarys will be
returned.
mysql> create table t3 as select elt(1, 'a', 3);
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> describe t3;
+-----------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+--------------+------+-----+---------+-------+
| elt(1, 'a', 3) | varbinary(1) | YES | | NULL | |
+-----------------+--------------+------+-----+---------+-------+
1 row in set (0.00 sec)
mysql> create table t4 as select elt(1, true, false);
Query OK, 1 row affected (0.00 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> describe t4;
+----------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+-------+
| elt(1, true, false) | varbinary(1) | YES | | NULL | |
+----------------------+--------------+------+-----+---------+-------+
1 row in set (0.00 sec)
mysql> create table t5 as select elt(1, 2.0, false);
Query OK, 1 row affected (0.01 sec)
Records: 1 Duplicates: 0 Warnings: 0
mysql> describe t5;
+---------------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------------+--------------+------+-----+---------+-------+
| elt(1, 2.0, false) | varbinary(4) | YES | | NULL | |
+---------------------+--------------+------+-----+---------+-------+
1 row in set (0.00 sec)
Based on the above, I think it better return string as binary is commonly used
in hive.
> [GenericUDF] new string function ELT(N,str1,str2,str3,...)
> -----------------------------------------------------------
>
> Key: HIVE-512
> URL: https://issues.apache.org/jira/browse/HIVE-512
> Project: Hadoop Hive
> Issue Type: New Feature
> Components: Query Processor
> Affects Versions: 0.4.0
> Reporter: Min Zhou
> Assignee: Min Zhou
> Fix For: 0.4.0
>
> Attachments: HIVE-512.2.patch, HIVE-512.patch
>
>
> ELT(N,str1,str2,str3,...)
> Returns str1 if N = 1, str2 if N = 2, and so on. Returns NULL if N is less
> than 1 or greater than the number of arguments. ELT() is the complement of
> FIELD().
> {noformat}
> mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
> -> 'ej'
> mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
> -> 'foo'
> {noformat}
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.