You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "qus-jiawei (JIRA)" <ji...@apache.org> on 2013/12/23 10:17:50 UTC

[jira] [Commented] (HIVE-6096) while hive query using hive.optimize.skewjoin , it use the keyobject as filename.If the keyobject contain some illegal character,the query crash.

    [ https://issues.apache.org/jira/browse/HIVE-6096?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13855514#comment-13855514 ] 

qus-jiawei commented on HIVE-6096:
----------------------------------

Now, hive dosen't have base64 encode function.
If I use base64 to encode the keyObject ,is it suitable to add one.
Or hive has some other better encode algorithm to encode the keyObject.

> while hive query using hive.optimize.skewjoin , it use the keyobject as filename.If the keyobject contain some illegal character,the query crash.
> -------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-6096
>                 URL: https://issues.apache.org/jira/browse/HIVE-6096
>             Project: Hive
>          Issue Type: Bug
>            Reporter: qus-jiawei
>         Attachments: file_name_illegal .log
>
>
> while hive query using hive.optimize.skewjoin , it use the keyobject as filename.If the keyobject contain some illegal character,the query crash.
> In our version hive-0.10-cdh4.2.1,the code with bug is :
> public class RowContainer<Row extends List<Object>> extends AbstractRowContainer<Row> {
> ...
>   private void spillBlock(Row[] block, int length) throws HiveException {
> ...
>         if (this.keyObject != null) {
>           suffix = "." + this.keyObject.toString() + suffix;
>         }
> ...
>  }
> ...
> }
> And for trunk:
> public class RowContainer<Row extends List<Object>> extends AbstractRowContainer<Row> {
> ...
>   protected void setupWriter() throws HiveException {
> ...
>         if (this.keyObject != null) {
>           suffix = "." + this.keyObject.toString() + suffix;
>         }
> ...
>  }
> ...
> }
> I think it should use base64 to encode the keyObject and get legal filename.



--
This message was sent by Atlassian JIRA
(v6.1.5#6160)