[Enhancement] Ignore union type tag when converting avro to json (backport #52973) #53100
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Why I'm doing:
schema:
avro
avro_value_to_json
result:{"id": 1, "name": "Alice", "email": {"email2": {"x": {"int": 1}, "y": {"string": "[email protected]"}}}}
What I'm doing:
add a new function to convert avro values to JSON strings while ignoring union type tags.
{"id":1,"name":"Alice","email":{"x":1,"y":"[email protected]"}}
add a new config
avro_ignore_union_type_tag
and modify existing functions to use this new conversion method based on the config.Fixes #issue
What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist:
Bugfix cherry-pick branch check:
This is an automatic backport of pull request #52973 done by [Mergify](https://mergify.com). ## Why I'm doing: schema: ``` { "type": "record", "name": "User", "fields": [ {"name": "id", "type": "int"}, {"name": "name", "type": "string"}, {"name": "email", "type": ["null", { "type": "record", "name": "email2", "fields": [ { "name": "x", "type" : ["null", "int"] }, { "name": "y", "type": ["null", "string"] } ] } ] } ] } ```
avro
avro_value_to_json
result:{"id": 1, "name": "Alice", "email": {"email2": {"x": {"int": 1}, "y": {"string": "[email protected]"}}}}
What I'm doing:
add a new function to convert avro values to JSON strings while ignoring union type tags.
{"id":1,"name":"Alice","email":{"x":1,"y":"[email protected]"}}
add a new config
avro_ignore_union_type_tag
and modify existing functions to use this new conversion method based on the config.Fixes #issue
What type of PR is this:
Does this PR entail a change in behavior?
If yes, please specify the type of change:
Checklist: