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 >
