Skip to content

[C++] AppendScalar implementation uses polymorphism #50596

Description

@pitrou

Describe the enhancement requested

The ArrayBuilder::AppendScalar implementation is currently very odd:

  • the ArrayBuilder hierarchy uses polymorphism (i.e. virtual methods) to handle type-specific operations
  • but ArrayBuilder::AppendScalar is implemented entirely in the base class using a visitor, putting type-specific knowledge in the base class definition
  • but ArrayBuilder::AppendScalar is also a virtual method overriden in dictionary and run-end-encoded builders
  • furthermore, the visitor in the base class definition of ArrayBuilder::AppendScalar dispatched on the scalar's data type, instead of the builder's data type

We should refactor the AppendScalar implementation to be entirely polymorphic and remove any trace of type-specific implementations in the base class (ArrayBuilder::AppendScalar would probably become a pure virtual method).

This would also help in cases like #50584

Component(s)

C++

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions