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