Hello!  Hmmm... reading through the spec (again), there is a small
ambiguous point!  Good catch!

Specifically, it specifically says that ".a" is not a valid namespace attribute:

"A namespace is a dot-separated sequence of such [non-empty] names.
The empty string may also be used as a namespace ..."

But it could be a valid full name: made from a valid namespace (the
empty string) and a valid name.

I suspect that the original intention was that it should not be a
valid fullname, with the consequence that all valid fullnames are
valid Java class names.

If it *were* a valid fullname, however, it would be useful to
distinguish between specifying the default namespace versus inheriting
a namespace from a parent record!  As far as I can tell, this
behaviour isn't implemented anywhere or specified in the spec either.

What do you think?  The spec could be clarified either way.

Ryan


On Wed, May 27, 2020 at 7:20 PM Micah Kornfield <emkornfi...@gmail.com> wrote:
>
> Hi Avro Dev,
> I think there is a little bit of ambiguity in the requirements for the
> namespace component of a full name in the specification [1].  In particular
> it isn't clear whether namespaces like:
> ".namespace" should be considered valid (i.e. a "null" namespace followed a
> valid name).
>
> It appears the the C++ implementation does not think this is valid [2] but
> I couldn't find a corresponding check in the Java code base (I'm still
> familiarizing myself with both).
>
> Should ".namespace" be considered valid?
>
> Thanks,
> Micah
>
> [1] https://avro.apache.org/docs/current/spec.html
> [2] https://github.com/apache/avro/blob/master/lang/c%2B%2B/impl/Node.cc#L72

Reply via email to