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,

Reply via email to