Details
-
Improvement
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
In my own work to extend AVRO-2090, and also in AVRO-2247, an alternative approach optimizing decoders, we were forced to re-implement Schema resolution logic because it's currently embedded deeply in ResolvingGrammarGenerator. However, in the past the Avro community found it hard to maintain multiple implementations of the schema resolution code, as it is tedious and error-prone code.
In this JIRA we've refactored the resolution code into a new class called Resolver, and have rewritten ResolvingGrammarGenerator to be a client of this class. This rewrite passes the full regression suite, including bug-for-bug compatibility with a few questionable resolutions rules, such as the "soft matching" rule for record in unions.
Attachments
Issue Links
- links to