Document that NaN in a data variable is read as SQL NULL
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 1/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 85/100
- Tipo di issue
- Documentazione
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- documentation
Direzione di ricerca
Inizia controllando la conversione in xarray_sql/df.py e i dialetti ADBC, quindi consulta docs/limitations.md e la documentazione sulla lettura per trovare il posto migliore in cui inserire questa nota. Documenta che NaN in una variabile di dati diventa SQL NULL, che le funzioni di aggregazione lo ignorano e che non c’è modo di leggerlo come valore NaN.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
xarray-sql turns NaN in a data variable into SQL NULL when it scans a Dataset (pa.array(..., from_pandas=True) in xarray_sql/df.py, and the same in the ADBC dialects). That is deliberate, so aggregates skip missing values the way xarray's skipna does. I couldn't find it in the user docs, though, and it surprised me.
What I expected
That a float NaN stays NaN, as it does in a Parquet file or an Arrow table registered directly, and that SUM over a column with a NaN returns NaN.
What happens
import numpy as np, xarray as xr, xarray_sql as xql
ds = xr.Dataset({"x": (("t",), [1.0, np.nan, 2.0])}, coords={"t": [0, 1, 2]})
ctx = xql.Context()
ctx.from_dataset("v", ds)
ctx.sql("SELECT SUM(x) AS s, COUNT(x) AS n, COUNT(*) AS rows FROM v").to_pandas()
# s = 3.0, n = 2, rows = 3
isnan(x) on that row is NULL, not true, and DuckDB through xql.register behaves the same.
Where it mattered
A check that attention masks pairs out rather than weighting them by zero put a NaN in V and expected it to reach only the queries allowed to see it. Every output stayed finite, because the NaN had become a NULL that SUM skipped. The check uses +inf instead, which xarray-sql keeps as a value.
Suggestion
Document it, for example in docs/limitations.md or the reading docs: NaN in a data variable is read as NULL; aggregates skip it; there's no way to read a NaN as a value. Whether to offer an option to keep NaN is a separate question.
- Lingua principale
- Python
- Stelle
- 142
- Fork
- 19
- Merge medio
- 1g 9h
- PR unite (30g)
- 9
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun 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 xqlsystems/xarray-sql
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
xqlsystems/xarray-sql#267 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 74/100
xqlsystems/xarray-sql#243 ·
I maintainer di solito rispondono entro 1 giorno
-
publish.yml: the TestPyPI verification step is unreachable (and installs the wrong package name)Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
xqlsystems/xarray-sql#242 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
xqlsystems/xarray-sql#237 ·
I maintainer di solito rispondono entro 1 giorno
-
page not found errorAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 72/100
xqlsystems/xarray-sql#231 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di xqlsystems/xarray-sql
Issue simili
-
documentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
ianktoo/project-monitor#14 ·
-
A wrong descriptor checksum is refused with the right one, also for an xprv or WIF descriptorApertasecurity
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
btclib-org/btclib-wallet#478 ·
I maintainer di solito rispondono entro 1 giorno
-
security
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
btclib-org/btclib#2727 ·
I maintainer di solito rispondono entro 1 giorno
-
good first issue lead variant:container
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
radialmonster/orf-cleanroom#10 ·
I maintainer di solito rispondono entro 1 giorno
-
gdsa opencode: keep-alive cleanup trap fails with 'keepalive_pid: unbound variable'Forse già presa @darribas l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100