Skip to content

[C++] Implement basic functionality for new Binary/Utf8View types #39634

Open

Description

@jorisvandenbossche

PR #37792 added a basic implementation of the new BinaryView and Utf8View (StringView) format additions. This included mostly just the basic objects (Array, DataType, Builder) and IPC support.
For being able to handle input that uses those new formats, there are some additional features we will have to support (eg receiving a dataset, doing some filtering/projection, and then converting to standard string type).

Activity

  1. mapleFU commented on Oct 28, 2024

    @mapleFU
    Member

    https://github.com/apache/arrow/pull/43302/files

    This Cast is implemented in C++, I don't know what should be added then 🤔

  2. jorisvandenbossche commented on Oct 28, 2024

    @jorisvandenbossche
    MemberAuthor

    Updated the top post to indicate cast is implemented now.

  3. kevinli1993 commented on Oct 28, 2024

    @kevinli1993

    Hi! I found this issue after creating #44540 above - thanks Joris for organizing/triaging.

    I'm wondering if the cast functionality will be made available in pyarrow in a later release? Or we focusing on polishing up the remaining C++ tasks first?

    On another note, another missing functionality I might like to see added is a count_unique kernel for Utf8View. (Hopefully not a big lift as the dictionary implementation already exists.)

  4. mapleFU commented on Oct 28, 2024

    @mapleFU
    Member

    I'm wondering if the cast functionality will be made available in pyarrow in a later release? Or we focusing on polishing up the remaining C++ tasks first?

    Which version are you using here? I'd try 18.0 for this later, and just support cast if it cannot.

  5. WillAyd commented on Oct 29, 2024

    @WillAyd
    Contributor

    I opened #44336 to track the development of compute kernels - should we just roll that into this PR or keep separate?

  6. jorisvandenbossche commented on Oct 30, 2024

    @jorisvandenbossche
    MemberAuthor

    Either way is fine for me. In addition to the "basic" kernels (cast, take, filter, etc), there are also all the binary or string-specific kernels (binary_../ascii_../utf8_..)

  7. kevinli1993 commented on Nov 1, 2024

    @kevinli1993

    I'm wondering if the cast functionality will be made available in pyarrow in a later release? Or we focusing on polishing up the remaining C++ tasks first?

    Which version are you using here? I'd try 18.0 for this later, and just support cast if it cannot.

    I could confirm that casting to pa.string() works very well now, on the 18.0 version of pyarrow!

  8. Periecle commented on May 12, 2026

    @Periecle
    Contributor

    take

  9. Periecle commented on May 12, 2026

    @Periecle
    Contributor

    Implementation of basic comparison kernels for binary/utf8 views - #49964

    P.S. A lot of cross-referencing here, as a lot of issues correlate with one another.

  10. Periecle commented on Jun 12, 2026

    @Periecle
    Contributor

    Implementation of take/filter for binary/utf8 views: #50164

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

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions