Hi Arrow community,

I am submitting a new Pull Request that proposes simplifying the creation
of extension type writers by transitioning from a factory-based pattern to
a type-based pattern.

Currently, ExtensionTypeWriterFactory instances are passed through multiple
API layers. The proposed change moves this responsibility to the extension
types themselves via a new getNewFieldWriter() method on
ArrowType.ExtensionType.

This new approach aligns with the pattern used by MinorType, where each
type is responsible for creating its own writer. This significantly reduces
boilerplate, simplifies the API, and will make it much easier to implement
custom extension types outside of arrow-java.

Please note that this PR introduces breaking changes to the extension type
writing mechanism, which are not backward compatible with the current
implementation.

All breaking changes and implementation details are thoroughly described in
the PR: https://github.com/apache/arrow-java/pull/892 (
https://github.com/apache/arrow-java/pull/892).

Given that this is a breaking change, I recommend including it in the
v18.4.0 release.

Best regards,
Joana Hrotkó

Reply via email to