You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Tamas Palfy (Jira)" <ji...@apache.org> on 2021/03/24 20:16:00 UTC

[jira] [Updated] (NIFI-8365) JSON record reader mishandles deep CHOICE types

     [ https://issues.apache.org/jira/browse/NIFI-8365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tamas Palfy updated NIFI-8365:
------------------------------
    Description: 
The AbstractJsonRowRecordReader when trying to find the correct schema for a given record it may come with a wrong one.
For example:

Suppose the following record:

{code:json}
{
  "dataCollection":[
    {
      "record": {
        "integer": 1,
        "boolean": true
      }
    },
    {
      "record": {
        "integer": 2,
        "string": "stringValue2"
      }
    }
  ]
}
{code}
Even if the schema is correctly set (which may not be the case as infer schema itself has a similar issue),
the second record
{code:json}
    {
      "record": {
        "integer": 2,
        "string": "stringValue2"
      }
    }
{code}
will be assigned the schema of the first.

This will cause the fields that are not present in the schema to be omitted when writing it out.


  was:
The AbstractJsonRowRecordReader when trying to find the correct schema for a given record it may come with a wrong one.
For example:

Suppose the following record:

{code:json}
{
  "dataCollection":[
    {
      "record": {
        "integer": 1,
        "boolean": true
      }
    },
    {
      "record": {
        "integer": 2,
        "string": "stringValue2"
      }
    }
  ]
}
{code}
Even if the schema is correctly set (which is may not be the case as infer schema itself has a similar issue),
the second record
{code:json}
    {
      "record": {
        "integer": 2,
        "string": "stringValue2"
      }
    }
{code}
will be assigned the schema of the first.

This will cause the fields that are not present in the schema to be omitted when writing it out.



> JSON record reader mishandles deep CHOICE types
> -----------------------------------------------
>
>                 Key: NIFI-8365
>                 URL: https://issues.apache.org/jira/browse/NIFI-8365
>             Project: Apache NiFi
>          Issue Type: Bug
>            Reporter: Tamas Palfy
>            Priority: Major
>
> The AbstractJsonRowRecordReader when trying to find the correct schema for a given record it may come with a wrong one.
> For example:
> Suppose the following record:
> {code:json}
> {
>   "dataCollection":[
>     {
>       "record": {
>         "integer": 1,
>         "boolean": true
>       }
>     },
>     {
>       "record": {
>         "integer": 2,
>         "string": "stringValue2"
>       }
>     }
>   ]
> }
> {code}
> Even if the schema is correctly set (which may not be the case as infer schema itself has a similar issue),
> the second record
> {code:json}
>     {
>       "record": {
>         "integer": 2,
>         "string": "stringValue2"
>       }
>     }
> {code}
> will be assigned the schema of the first.
> This will cause the fields that are not present in the schema to be omitted when writing it out.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)