KalleOlaviNiemitalo commented on code in PR #2448:
URL: https://github.com/apache/avro/pull/2448#discussion_r1298037348
##########
doc/content/en/docs/++version++/Specification/_index.md:
##########
@@ -259,13 +259,29 @@ Complex types (`record`, `enum`, `array`, `map`, `fixed`)
have no namespace, but
A schema or protocol may not contain multiple definitions of a fullname.
Further, a name must be defined before it is used ("before" in the depth-first,
left-to-right traversal of the JSON parse tree, where the types attribute of a
protocol is always deemed to come "before" the messages attribute.)
-### Aliases
+### Aliases {#aliases}
Named types and fields may have aliases. An implementation may optionally use
aliases to map a writer's schema to the reader's. This facilitates both schema
evolution as well as processing disparate datasets.
Aliases function by re-writing the writer's schema using aliases from the
reader's schema. For example, if the writer's schema was named "Foo" and the
reader's schema is named "Bar" and has an alias of "Foo", then the
implementation would act as though "Foo" were named "Bar" when reading.
Similarly, if data was written as a record with a field named "x" and is read
as a record with a field named "y" with alias "x", then the implementation
would act as though "x" were named "y" when reading.
A type alias may be specified either as a fully namespace-qualified, or
relative to the namespace of the name it is an alias for. For example, if a
type named "a.b" has aliases of "c" and "x.y", then the fully qualified names
of its aliases are "a.c" and "x.y".
+Aliases are alternative names, and thus subject to the same uniqueness
constraints as names. Aliases should be valid names, but this is not required:
any string is accepted as an alias. This allows schema evolution to correct
illegal names in old schemata.
Review Comment:
My understanding from
<https://avro.apache.org/docs/1.11.1/specification/#aliases> is that aliases
cannot be referenced in a schema; they are only used for reading data that was
written using an old schema that used those strings as names. But this
conversion requires parsing the old schema, so if the names in that are not
valid, then it can only be done with a library that tolerates such invalid
names (in addition to tolerating those strings as aliases in the new schema).
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]