Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Extract shared list-array construction from the split_* functions in split.rs

Open Beginner friendly
#6,983 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@arminazimi is already working on this.

Since Oct 15, 2026.

  • #7004 by @arminazimi — open

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
82/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Active
Tech stack
rust

Research direction

Start in native/spark-expr/src/string_funcs/split.rs and compare the tail of the four generic split functions the issue links (regex scalar, split_sql_generic_scalar, split_sql_generic_scalar_array, split_sql_generic_array). Move the shared block that finishes the values builder, picks Utf8 or LargeUtf8 from O::IS_LARGE, builds the item field and creates the GenericListArray into a new finish_split_list helper with the signature the issue proposes. Done when all four functions call that helper and their existing behaviour and tests are unchanged.

Written by the indexing model from the issue text.

Description

area:expressions enhancement good first issue help wanted requires-triage rust tech debt
What is the problem the feature request solves?

In native/spark-expr/src/string_funcs/split.rs, the four generic split functions end with the same block of code: finish the values builder, pick Utf8/LargeUtf8 from O::IS_LARGE, build the item field, and construct a GenericListArray with the offsets.

They differ only in the per-row call and in how the null buffer is produced (cloned input nulls vs NullBufferBuilder). A fix to the list construction, such as the item field's nullability, has to be made in four places.

Describe the potential solution

Extract fn finish_split_list<O: OffsetSizeTrait>(offsets: Vec<O>, values: GenericStringBuilder<O>, nulls: Option<NullBuffer>) -> ColumnarValue and call it from all four functions. Optionally, also factor the per-row loop into a generic driver so each variant only supplies its null predicate and push call.

Additional context

This is small and a good first issue. Line references are pinned to commit 7d8d9b1544b7.

Dominant language
Scala
Stars
1.3k
Forks
391
Avg merge
2d 10h
Merged PRs (30d)
421

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/datafusion-comet

All issues in apache/datafusion-comet

Similar issues

More Scala issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.