Extract shared list-array construction from the split_* functions in split.rs
I maintainer di solito rispondono entro 1 giorno
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
- Ambito
- data-engineering
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
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.
- L305-L327 (regex scalar)
- L338-L360 (
split_sql_generic_scalar) - L374-L397 (
split_sql_generic_scalar_array) - L415-L441 (
split_sql_generic_array)
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
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di apache/datafusion-comet
-
perf: use extend when buffering partition row indices in the native shuffle writerForse già presa @HarshilMital l’ha presa 1 giorno fa. Apertaarea:shuffle enhancement good first issue performance requires-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
apache/datafusion-comet#7072 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Native hashing of NullType and ANSI interval values fails with "Unsupported data type in hasher"Forse già presa @ump45nose l’ha presa 1 giorno fa. Apertaarea:expressions area:shuffle bug priority:high requires-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
apache/datafusion-comet#7063 ·
I maintainer di solito rispondono entro 1 giorno
-
JVM columnar shuffle panics on a struct column with a NullType fieldForse già presa @jadenfix l’ha presa 1 giorno fa. Apertaarea:shuffle bug priority:high requires-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/datafusion-comet#7062 ·
I maintainer di solito rispondono entro 1 giorno
-
requires-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
apache/datafusion-comet#7001 ·
I maintainer di solito rispondono entro 1 giorno
-
Deduplicate spark_ceil and spark_floor and port floor's decimal boundary tests to ceilForse già presa @med9110 l’ha presa 3 giorni fa. Apertaarea:expressions enhancement help wanted requires-triage rust tech debt
Difficoltà 2/5 Mezza giornata Idoneità per principianti 68/100
apache/datafusion-comet#6974 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/datafusion-comet
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
scope:security type:aquasec
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
AbsaOSS/atum-service#494 ·
-
Send camera_pitch and camera_roll to the AI API so validator crops can be tilt-correctedForse già presa @jonfroehlich l’ha presa oggi. ApertaAI Auto-validate
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
ProjectSidewalk/SidewalkWebpage#5788 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
A-network C-bug S-ready-for-human
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
ergoplatform/ergo#2741 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 78/100
scalameta/metals-zed#99 ·