[
https://issues.apache.org/jira/browse/ARROW-15211?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17466215#comment-17466215
]
Eduardo Ponce commented on ARROW-15211:
---------------------------------------
[~apitrou] I agree, that since it is public facing it is most likely being used
in user code and making such a change would not be desirable. The
issue/discussion with ChunkedArray constructor sprouts from ARROW-15194 (see PR
for more discussions).
In summary, the ChunkedArray long-form constructor was allowing empty and
nullptr data type, while the single argument constructor and {{Make()}}
provided checks to prevent this. {{Make()}} performs an extra validation to
ensure that chunks are of the same type but the constructors do not perform
this check.
> Deprecate ChunkedArray public constructors
> ------------------------------------------
>
> Key: ARROW-15211
> URL: https://issues.apache.org/jira/browse/ARROW-15211
> Project: Apache Arrow
> Issue Type: Improvement
> Components: C++
> Reporter: Eduardo Ponce
> Priority: Minor
>
> The convention for the higher-level Arrow data structures (Table,
> RecordBatch) is to provide a public {{Make()}} method for creating objects
> with validation checks. The constructors are set to {{protected}} and do not
> perform validation checks, so they should be only invoked with valid inputs.
> {{ChunkedArray}} provides both public constructors and {{Make()}}. We should
> deprecate the public constructors and be consistent with the other data
> structures.
> For more details on the Arrow data structures, [see this
> discussion|https://github.com/apache/arrow/pull/12036#issuecomment-1002242875].
> Note: The codebase has many statements of the form
> {{std::make_shared<ChunkedArray>(...)}} which should be changed to
> {{ChunkedArray::Make(...)}}.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)