Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

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

Aperta Adatta ai principianti
#6,983 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@arminazimi ci sta già lavorando.

Dal 15/10/2026.

  • #7004 di @arminazimi — aperta

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
82/100
Tipo di issue
Refactoring
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
rust

Direzione di ricerca

Inizia da native/spark-expr/src/string_funcs/split.rs e confronta la parte finale delle quattro funzioni split generiche collegate nell'issue (regex scalar, split_sql_generic_scalar, split_sql_generic_scalar_array, split_sql_generic_array). Sposta il blocco condiviso che completa il values builder, sceglie Utf8 o LargeUtf8 in base a O::IS_LARGE, costruisce il field dell'item e crea il GenericListArray in un nuovo helper finish_split_list con la firma proposta nell'issue. È fatto quando tutte e quattro le funzioni chiamano quell'helper e il comportamento esistente e i test restano invariati.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Scala
Stelle
1.3k
Fork
391
Merge medio
2g 12h
PR unite (30g)
428

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di apache/datafusion-comet

Tutte le issue di apache/datafusion-comet

Issue simili

Altre issue su Scala

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.