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)