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 <[email protected]> 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 <[email protected]>
> 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 <[email protected]> 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 <[email protected]> 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 <
>> [email protected]>
>> > > 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
>

Reply via email to