Optional mode to preserve floating NaNs instead of constructing Arrow nulls
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 18/100
Línea de trabajo
The NaN-to-null conversion is in iter_record_batches(), where each projected variable goes through pa.array(..., from_pandas=True); start there and read the #152 fix to see the default SQL-null behaviour that must stay. Before any code, the issue asks for a benchmark of dense-array projection scans with and without null discovery, so a first step is measuring that. Done means a maintainer-agreed design for an opt-in nan_as_null=False mode, with a benchmark result and the default behaviour unchanged.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
🤖 Follow-up to #152: converting NaNs to Arrow nulls is the correct default for SQL aggregation semantics, but some projection-only consumers already carry an explicit validity mask and need the original float payload rather than SQL null semantics.
For example, Samudra selects complete ocean-state planes for ML batches and applies its own wet mask. iter_record_batches() currently uses pa.array(..., from_pandas=True) for every projected variable, which scans for NaNs and constructs validity information even though the query only filters on dimension/index columns.
Would an opt-in registration/read mode such as nan_as_null=False be reasonable? The default must remain True so AVG, COUNT, IS NULL, etc. preserve the behavior fixed by #152. The opt-in mode should preserve NaN as an ordinary Arrow float and document that SQL null operations will not treat it as missing.
This should be benchmarked before implementation; the goal is to determine whether skipping null discovery/bitmap construction materially improves projection-heavy dense-array scans and reduces memory.
- Lenguaje dominante
- Python
- Estrellas
- 142
- Forks
- 19
- Merge medio
- 1 d 6 h
- PR fusionados (30 d)
- 10
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de xqlsystems/xarray-sql
-
documentation
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
xqlsystems/xarray-sql#268 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 64/100
xqlsystems/xarray-sql#267 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 74/100
xqlsystems/xarray-sql#243 ·
Los mantenedores suelen responder en 1 día
-
publish.yml: the TestPyPI verification step is unreachable (and installs the wrong package name)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
xqlsystems/xarray-sql#242 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
xqlsystems/xarray-sql#237 ·
Los mantenedores suelen responder en 1 día
Todos los issues de xqlsystems/xarray-sql
Issues similares
-
follow-up
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
Download helper still uses huggingface_hub arguments removed in 1.0: USE_SYMLINKS is silently ignored and every download ends with a WinError 3 linePosiblemente ocupada @li-lizhe la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
IPv6 node addresses produce an invalid request URLPosiblemente ocupada @RaphaelFakhri la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
typesense/typesense-python#154 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
elastic/elasticsearch-py#3592 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 77/100
developmentseed/titiler-cmr#250 · 1 comentario ·
Los mantenedores suelen responder en 1 día