[ 
https://issues.apache.org/jira/browse/HIVE-6096?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

qus-jiawei updated HIVE-6096:
-----------------------------

    Description: 
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.

  was:
while hive query using hive.optimize.skewjoin , it use the keyobject as 
filename.If the keyobject contain some illegal character,the query crash.
The key code is below:




> 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)

Reply via email to