You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by Micah Kornfield <em...@gmail.com> on 2020/05/27 17:20:10 UTC

Namespace validation/requirements

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

Re: Namespace validation/requirements

Posted by Ryan Skraba <ry...@skraba.com>.
Hello, it's not a silly question -- it's kind of hidden inside the
./build.sh dist script.

Just run ant from inside the ./doc directory and the html files are
generated in the ./build/avro-doc-1.11.0-SNAPSHOT/ directory (N.B. not
the ./doc/build directory).

I don't have ant installed on my machine, so I find it easiest to use
the docker image that we use to build avro.

Good luck!  Ryan


On Fri, Jun 5, 2020 at 6:11 AM Micah Kornfield <em...@gmail.com> wrote:
>
> This might be a silly question, but how can I build the specification
> documentation?  Is it part of the javadoc build?
>
> Sorry i scanned the documentation and couldn't find anything specific.
>
> Thanks,
> Micah
>
> On Tue, Jun 2, 2020 at 12:04 AM Micah Kornfield <em...@gmail.com>
> wrote:
>
> > Thanks, I should have a PR up in the next few days for the spec.
> >
> > On Fri, May 29, 2020 at 12:57 AM Ryan Skraba <ry...@skraba.com> wrote:
> >
> >> I'm certain that the Java implementation doesn't validate full names
> >> correctly (https://issues.apache.org/jira/browse/AVRO-2659 has a fun
> >> example).  This should be an easy fix, I'll give it a go.
> >>
> >> A PR to clarify the spec on this point would be welcome!
> >>
> >> On Thu, May 28, 2020 at 6:47 PM Micah Kornfield <em...@gmail.com>
> >> wrote:
> >> >
> >> > I'm happy to make PR clarifying this.  I'm a little bit concerned that
> >> if
> >> > validation doesn't exist in Java (and maybe other languages today) if we
> >> > make the spec stricter it could break users.  How has the community
> >> handled
> >> > issues like this in the past?
> >> >
> >> > Would someone familiar with the Java implementation be able to comment
> >> if
> >> > there is validation around this (I couldn't find it on a quick search)?
> >> >
> >> > Thanks,
> >> > Micah
> >> >
> >> > On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:
> >> >
> >> > > Yes, the intent was to prohibit namespaces starting with a dot.
> >> > >
> >> > > <empty> | (<name>((<dot><name>)*))  was the intended grammar.
> >> > >
> >> > > Doug
> >> > >
> >> > > On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
> >> > >
> >> > > > 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 <
> >> emkornfield@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
> >> > > >
> >> > >
> >>
> >

Re: Namespace validation/requirements

Posted by Micah Kornfield <em...@gmail.com>.
This might be a silly question, but how can I build the specification
documentation?  Is it part of the javadoc build?

Sorry i scanned the documentation and couldn't find anything specific.

Thanks,
Micah

On Tue, Jun 2, 2020 at 12:04 AM Micah Kornfield <em...@gmail.com>
wrote:

> Thanks, I should have a PR up in the next few days for the spec.
>
> On Fri, May 29, 2020 at 12:57 AM Ryan Skraba <ry...@skraba.com> wrote:
>
>> I'm certain that the Java implementation doesn't validate full names
>> correctly (https://issues.apache.org/jira/browse/AVRO-2659 has a fun
>> example).  This should be an easy fix, I'll give it a go.
>>
>> A PR to clarify the spec on this point would be welcome!
>>
>> On Thu, May 28, 2020 at 6:47 PM Micah Kornfield <em...@gmail.com>
>> wrote:
>> >
>> > I'm happy to make PR clarifying this.  I'm a little bit concerned that
>> if
>> > validation doesn't exist in Java (and maybe other languages today) if we
>> > make the spec stricter it could break users.  How has the community
>> handled
>> > issues like this in the past?
>> >
>> > Would someone familiar with the Java implementation be able to comment
>> if
>> > there is validation around this (I couldn't find it on a quick search)?
>> >
>> > Thanks,
>> > Micah
>> >
>> > On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:
>> >
>> > > Yes, the intent was to prohibit namespaces starting with a dot.
>> > >
>> > > <empty> | (<name>((<dot><name>)*))  was the intended grammar.
>> > >
>> > > Doug
>> > >
>> > > On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
>> > >
>> > > > 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 <
>> emkornfield@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
>> > > >
>> > >
>>
>

Re: Namespace validation/requirements

Posted by Micah Kornfield <em...@gmail.com>.
Thanks, I should have a PR up in the next few days for the spec.

On Fri, May 29, 2020 at 12:57 AM Ryan Skraba <ry...@skraba.com> wrote:

> I'm certain that the Java implementation doesn't validate full names
> correctly (https://issues.apache.org/jira/browse/AVRO-2659 has a fun
> example).  This should be an easy fix, I'll give it a go.
>
> A PR to clarify the spec on this point would be welcome!
>
> On Thu, May 28, 2020 at 6:47 PM Micah Kornfield <em...@gmail.com>
> wrote:
> >
> > I'm happy to make PR clarifying this.  I'm a little bit concerned that if
> > validation doesn't exist in Java (and maybe other languages today) if we
> > make the spec stricter it could break users.  How has the community
> handled
> > issues like this in the past?
> >
> > Would someone familiar with the Java implementation be able to comment if
> > there is validation around this (I couldn't find it on a quick search)?
> >
> > Thanks,
> > Micah
> >
> > On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:
> >
> > > Yes, the intent was to prohibit namespaces starting with a dot.
> > >
> > > <empty> | (<name>((<dot><name>)*))  was the intended grammar.
> > >
> > > Doug
> > >
> > > On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
> > >
> > > > 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 <
> emkornfield@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
> > > >
> > >
>

Re: Namespace validation/requirements

Posted by Ryan Skraba <ry...@skraba.com>.
I'm certain that the Java implementation doesn't validate full names
correctly (https://issues.apache.org/jira/browse/AVRO-2659 has a fun
example).  This should be an easy fix, I'll give it a go.

A PR to clarify the spec on this point would be welcome!

On Thu, May 28, 2020 at 6:47 PM Micah Kornfield <em...@gmail.com> wrote:
>
> I'm happy to make PR clarifying this.  I'm a little bit concerned that if
> validation doesn't exist in Java (and maybe other languages today) if we
> make the spec stricter it could break users.  How has the community handled
> issues like this in the past?
>
> Would someone familiar with the Java implementation be able to comment if
> there is validation around this (I couldn't find it on a quick search)?
>
> Thanks,
> Micah
>
> On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:
>
> > Yes, the intent was to prohibit namespaces starting with a dot.
> >
> > <empty> | (<name>((<dot><name>)*))  was the intended grammar.
> >
> > Doug
> >
> > On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
> >
> > > 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 <em...@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
> > >
> >

Re: Namespace validation/requirements

Posted by Micah Kornfield <em...@gmail.com>.
That seems reasonable to me.  FWIW, I opened
https://github.com/apache/avro/pull/917 to update the language.

Thanks,
Micah

On Thu, Jun 11, 2020 at 10:31 AM Sean Busbey <bu...@apache.org> wrote:

> I'm happy to make PR clarifying this.  I'm a little bit concerned that if
>> validation doesn't exist in Java (and maybe other languages today) if we
>> make the spec stricter it could break users.  How has the community
>> handled
>> issues like this in the past?
>
>
> Something similar happened for the generic API and enums, IIRC, and we
> handled it by only rolling it out in a major version for the libraries
> (e.g. 1.y where y is the major version for Avro releases) and release
> noting it.
>
>
> On Thu, May 28, 2020 at 11:47 AM Micah Kornfield <em...@gmail.com>
> wrote:
>
>> I'm happy to make PR clarifying this.  I'm a little bit concerned that if
>> validation doesn't exist in Java (and maybe other languages today) if we
>> make the spec stricter it could break users.  How has the community
>> handled
>> issues like this in the past?
>>
>> Would someone familiar with the Java implementation be able to comment if
>> there is validation around this (I couldn't find it on a quick search)?
>>
>> Thanks,
>> Micah
>>
>> On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:
>>
>> > Yes, the intent was to prohibit namespaces starting with a dot.
>> >
>> > <empty> | (<name>((<dot><name>)*))  was the intended grammar.
>> >
>> > Doug
>> >
>> > On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
>> >
>> > > 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 <
>> emkornfield@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
>> > >
>> >
>>
>
>
> --
> Sean
>

Re: Namespace validation/requirements

Posted by Sean Busbey <bu...@apache.org>.
>
> I'm happy to make PR clarifying this.  I'm a little bit concerned that if
> validation doesn't exist in Java (and maybe other languages today) if we
> make the spec stricter it could break users.  How has the community handled
> issues like this in the past?


Something similar happened for the generic API and enums, IIRC, and we
handled it by only rolling it out in a major version for the libraries
(e.g. 1.y where y is the major version for Avro releases) and release
noting it.


On Thu, May 28, 2020 at 11:47 AM Micah Kornfield <em...@gmail.com>
wrote:

> I'm happy to make PR clarifying this.  I'm a little bit concerned that if
> validation doesn't exist in Java (and maybe other languages today) if we
> make the spec stricter it could break users.  How has the community handled
> issues like this in the past?
>
> Would someone familiar with the Java implementation be able to comment if
> there is validation around this (I couldn't find it on a quick search)?
>
> Thanks,
> Micah
>
> On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:
>
> > Yes, the intent was to prohibit namespaces starting with a dot.
> >
> > <empty> | (<name>((<dot><name>)*))  was the intended grammar.
> >
> > Doug
> >
> > On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
> >
> > > 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 <emkornfield@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
> > >
> >
>


-- 
Sean

Re: Namespace validation/requirements

Posted by Micah Kornfield <em...@gmail.com>.
I'm happy to make PR clarifying this.  I'm a little bit concerned that if
validation doesn't exist in Java (and maybe other languages today) if we
make the spec stricter it could break users.  How has the community handled
issues like this in the past?

Would someone familiar with the Java implementation be able to comment if
there is validation around this (I couldn't find it on a quick search)?

Thanks,
Micah

On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:

> Yes, the intent was to prohibit namespaces starting with a dot.
>
> <empty> | (<name>((<dot><name>)*))  was the intended grammar.
>
> Doug
>
> On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
>
> > 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 <em...@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
> >
>

Re: Namespace validation/requirements

Posted by Doug Cutting <cu...@gmail.com>.
Yes, the intent was to prohibit namespaces starting with a dot.

<empty> | (<name>((<dot><name>)*))  was the intended grammar.

Doug

On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:

> 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 <em...@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
>

Re: Namespace validation/requirements

Posted by Ryan Skraba <ry...@skraba.com>.
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 <em...@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