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