Uploaded image for project: 'Hive'
  1. Hive
  2. HIVE-14285

Explain outputs: map-entry ordering of non-primitive objects.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Minor
    • Resolution: Fixed
    • None
    • 2.3.0
    • None
    • None

    Description

      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.

      Attachments

        1. HIVE-14285.1.patch
          9 kB
          Zoltan Haindrich

        Issue Links

          Activity

            People

              kgyrtkirk Zoltan Haindrich
              kgyrtkirk Zoltan Haindrich
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: