[
https://issues.apache.org/jira/browse/AVRO-3374?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17541361#comment-17541361
]
Christophe Le Saec commented on AVRO-3374:
------------------------------------------
[~rskraba] [~opwvhk] : Here, can we find a consensus on how to fix this ?
We have 2 options :
- Fix the issue and update documentation (from "Primitive type names have no
namespace and their names may not be defined in any namespace." to "Primitive
type names have no namespace" for example)
- Change parsing code to throw an exception when encountered "ns.int" for
record name; and so, be more conformed to current documentation, but introduced
a *breaking change*.
(I only explore Java code about that, but should we align behavior of others
modules (rust, C++ ...) ?)
> [Java] Fully qualified type reference "ns.int" loses namespace.
> ---------------------------------------------------------------
>
> Key: AVRO-3374
> URL: https://issues.apache.org/jira/browse/AVRO-3374
> Project: Apache Avro
> Issue Type: Bug
> Components: java
> Affects Versions: 1.11.0
> Reporter: Ryan Skraba
> Assignee: Christophe Le Saec
> Priority: Minor
> Labels: pull-requests-available
> Attachments: AVRO-3374.patch
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
> While brainstorming for AVRO-3370, I came across this special case where a
> type-reference could be considered ambiguous if the SDK is not careful when
> simplifying inherited namespaces:
> {code:json}
> {
> "type" : "record",
> "name" : "ns.int",
> "fields" : [
> {"name" : "value", "type" : "int"},
> {"name" : "next", "type" : [ "null", "ns.int" ]}
> ]
> }
> {code}
> In Java, if this code is parsed, it works as expected (as a linked list).
> If the schema is turned to a String using toString(), the namespace is
> dropped off the last {*}{{ns.int}}{*}, turning it into the primitive. That
> string can still be parsed into a Schema, but the "round-trip" modifies the
> schema in an incompatible way.
> That namespace shouldn't be dropped when producing the JSON string
> representing the Schema in Java.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)