[
https://issues.apache.org/jira/browse/AVRO-2275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16701386#comment-16701386
]
ASF GitHub Bot commented on AVRO-2275:
--------------------------------------
rstata opened a new pull request #395: AVRO-2275 Refactor schema-resolution
code from grammar-generation
URL: https://github.com/apache/avro/pull/395
Efforts to improve performance by code-generation and other means have been
hampered by the fact that our schema-resolution logic is embedded in
resolving-grammar-generation logic (see
[AVRO-2275](https://issues.apache.org/jira/browse/AVRO-2275)). This patch
factors the resolution logic out from the grammar-generation logic, so the
resolution logic can be more easily reused. See the design document included
in this patch for more information.
This patch consists of the following pieces:
* A design/user-guide document (`refactoring-resolution.md`).
* Core changes: a new file, `Resolver.java`, containing the extracted
resolution logic, and a rewrite of `ResolvingGrammarGenerator.java` based on
the new `Resolver.java`.
* Changes to resolution-related tests. These changes do not change the
tests themselves, but rather output more diagnostic information upon failure to
help developers resolve bugs.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
> Refactor schema-resolution code from grammar-generation
> -------------------------------------------------------
>
> Key: AVRO-2275
> URL: https://issues.apache.org/jira/browse/AVRO-2275
> Project: Apache Avro
> Issue Type: Improvement
> Components: java
> Reporter: Raymie Stata
> Assignee: Raymie Stata
> Priority: Major
>
> 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.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)