Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

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

オープン 初心者向け
#6,983 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@arminazimi がすでに取り組んでいます。

2026年10月15日 から。

  • #7004 @arminazimi による — オープン

評価

難易度
2/5
見積もり時間
1〜3時間
初心者へのやさしさ
82/100
issue の種類
リファクタリング
明瞭さ
明確に書かれている
活発さ
活発
技術スタック
rust

調査の方向性

native/spark-expr/src/string_funcs/split.rs から始めて、issue がリンクしている 4 つの汎用 split 関数(regex scalar、split_sql_generic_scalar、split_sql_generic_scalar_array、split_sql_generic_array)の末尾を比較してください。values builder を仕上げる共通ブロック、O::IS_LARGE に応じて Utf8 か LargeUtf8 を選ぶ部分、item の field を作る部分、GenericListArray を作る部分を、issue で提案されているシグネチャを持つ新しいヘルパー finish_split_list に移動してください。4 つの関数すべてがこのヘルパーを呼び出し、既存の動作とテストが変わらなければ完了です。

索引モデルが issue の本文から書いたものです。

説明

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.

主要言語
Scala
スター
1.3k
フォーク
391
平均マージ
2日 12時間
マージ済み PR(30日)
428

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

apache/datafusion-comet のほかの issue

apache/datafusion-comet の issue をすべて見る

似ている issue

Scala の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。