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

get_json_object bug when extract list of list with index

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Minor
    • Resolution: Fixed
    • 0.12.0, 0.13.0
    • 0.14.0
    • UDF
    • all

    Description

      https://github.com/apache/hive/blob/trunk/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFJson.java#L250

      this line should be out of the for-loop

      For example
      json = '{"h":[1, [2, 3],

      {"i": 0}

      , [

      {"p": 11}

      ,

      {"p": 12}

      ,

      {"pp": 13}

      ]}'
      get_json_object(json, '$.h[*][0]') should return back the first node(if exists) of every childrenof '$.h'
      which specifically should be
      [2,

      {"p":11}

      ]
      but hive returns only
      2

      because when hive pick the node '2' out, the tmp_jsonList will change to a list only contains one node '2':
      [2]
      then it was assigned to variable jsonList, in the next loop, value of i would be 2 which is greater than the size(always 1) of jsonList, then the loop broke out.

      Attachments

        1. HIVE-7036.1.patch.txt
          4 kB
          Navis Ryu

        Activity

          People

            navis Navis Ryu
            xelz Ming Ma
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: