trunc(x) on a column turns -0.0 into 0.0
I maintainer di solito rispondono entro 1 giorno
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 75/100
Direzione di ricerca
Cerca l'implementazione della funzione trunc nella codebase di DataFusion, probabilmente in un file come expr/scalar.rs o expr/builtin.rs. Il bug si trova nel percorso delle colonne dove viene utilizzato x == 0_f64. Sostituisci quella condizione con un controllo che preservi il segno, forse utilizzando direttamente x.trunc(). Scrivi un test nel corrispondente modulo di test per verificare che trunc(-0.0) restituisca -0.0 per una colonna. Esegui i test delle funzioni SQL esistenti per assicurarti che non ci siano regressioni.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
trunc(x) drops the sign of -0.0, but only when it runs on a column. On a scalar, and for trunc(x, 0), the sign is kept.
SELECT trunc(column1), trunc(column1, 0) FROM (VALUES (CAST(-0.0 AS DOUBLE)));
-- got: 0.0, -0.0
-- expected: -0.0, -0.0
The column code path returns 0.0 for either zero:
if x == 0_f64 { 0_f64 } else { x.trunc() }
-0.0 == 0.0 is true, so -0.0 becomes 0.0. f64::trunc already keeps the sign, so plain x.trunc() would be enough.
Seen through Lance (pylance 12.0.0): trunc(x, 0) on a -0.0 column returns -0.0. This line is the same on main and in 55.1.0. I found no existing issue or PR for it.
- Lingua principale
- Rust
- Stelle
- 9.4k
- Fork
- 2.5k
- Merge medio
- 3g 18h
- PR unite (30g)
- 381
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- 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
-
`CoalescePartitionsExec::cardinality_effect` returns `Equal` when `fetch` is setForse già presa @asolimando l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
apache/datafusion#26050 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
apache/datafusion#26030 · 1 commento · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Lambda examples in the SQL function docs fail with the default dialectForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
apache/datafusion#25960 ·
I maintainer di solito rispondono entro 1 giorno
-
Spark `xxhash64` hashes the raw bits of a NaN instead of the canonical NaNForse già presa @mrhard9090 l’ha presa 3 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
apache/datafusion#25913 ·
I maintainer di solito rispondono entro 1 giorno
-
`percentile_cont` truncates Float64 interpolation weights to six decimal placesForse già presa @aoto-tech l’ha presa 22 giorni fa. Apertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
apache/datafusion#25266 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di apache/datafusion
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
pnpm/pnpm#16635 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
bug llm translation
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno
-
skillfs: one malformed chat-log line aborts the entire skill-usage analysis (skill_usage_from_chat_logs.py)Forse già presa @zjncs l’ha presa oggi. Apertacomponent:skillfs
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
agentic-os-org/ANOLISA#6116 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
indygreg/cryptography-rs#99 ·