You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hive.apache.org by "Zoltan Haindrich (JIRA)" <ji...@apache.org> on 2016/07/19 19:43:20 UTC

[jira] [Created] (HIVE-14285) Explain outputs: map-entry ordering of non-primitive objects.

Zoltan Haindrich created HIVE-14285:
---------------------------------------

             Summary:  Explain outputs: map-entry ordering of non-primitive objects. 
                 Key: HIVE-14285
                 URL: https://issues.apache.org/jira/browse/HIVE-14285
             Project: Hive
          Issue Type: Improvement
            Reporter: Zoltan Haindrich
            Assignee: Zoltan Haindrich
            Priority: Minor


In HIVE-12244 I've left behind some ugly backward compatible getters with {{@Explain}} decorations to keep the qtests from breaking.

There were heavy explain plan changes when I used {{Path}} objects as keys in {{@Explain}} marked methods.

I've looked into the causes of this:
 * there is a {{TreeSet}} in there to keep all the keys in order.
 * but: {{org.apache.hadoop.fs.Path}} uses a different sort order (inherited from {{java.net.URI}} )...it sorts the paths using priorities:[schema,schemeSpecificPart,host,path,query,fragment]
  considering that the output is an explain result(possibly read by humans): i don't think this sophisticated sort order can be useful.

{{ExplainTask#outputMap}} always calls toString() on the keys before using them...so the most painless solution would be to change all the keys inside the treeset to simple strings (in case it's not a primitive already); this would restore the original behaviour for me.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)