Hi, I might be wrong but I think your sample schema should be valid! Does it fail with any of the SDKs ?
This part of the spec talks about the namespace, not the type. I.e. "namespace": ".ns" would be an error. On Mon, Aug 22, 2022 at 10:40 PM Brennan Vincent <[email protected]> wrote: > Hello, > > https://github.com/apache/avro/pull/917 introduced the following language > to the spec: > > > The null namespace may not be used in a dot-separated sequence of names. > > Thus ruling out fullnames like ".foo". > > However, this seems to rule out referring to names in the default > namespace from another namespace. > > For example, this schema was previously allowed by the spec: > > { > "type": "record", > "name": "r", > "fields": [ > { > "name": "f", > "type": { > "type": "record", > "name": "r2", > "namespace": "ns", > "fields": [ > { > "name": "f2", > "type": ["null", ".r"] > } > ] > } > } > ] > } > > Note ".r" in the type of "f2". This can't be changed to "r", > because that would be interpreted as "ns.r" due to "ns" being the nearest > enclosing namespace. > > Thus it seems that the new spec has restricted the set of valid schemas > and there is no longer > any way to accomplish this. > > Am I misinterpreting the spec? Does the empty namespace being disallowed > in dotted sequences > of names only apply to initial name definitions, but not to later name > references? Or is there > some other way to express this? > > Here is the initial discussion of this change, where the issue I'm raising > here doesn't > appear to have come up: > https://lists.apache.org/thread/q0o58fxgvstvdlgpoyv2pcz53borp587 > > Thanks, >
