perf: add a bounded paged query cursor
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
- 28/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Activo
- Stack tecnológico
- cpp, javascript, react-native, sqlite
- Área
- databases, mobile-dev, performance
Línea de trabajo
Start by locating the eager query implementation and the prepared-statement and connection lifecycle code, then read related issues #30, #62, and #389. Define the cursor ownership and cleanup behavior before implementing it. Done means bounded paging, explicit close, the listed lifecycle and concurrency tests, WAL cleanup documentation, and a large-result time-to-first-page and memory comparison.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Ordinary queries step every row and retain the complete result before returning it. Large SELECTs can hold the native result and its JavaScript conversion at once, so a caller that processes rows in batches still pays for the full result. The positional storage in #389 lowers per-row overhead but does not bound the number of retained rows.
Add an opt-in asynchronous cursor that returns a limited page of rows per request and continues stepping the same prepared statement on demand. Give callers an explicit close operation; finalization on garbage collection should be a fallback. The cursor must own its connection and statement safely across queued work, close, errors, and transaction completion. Define whether it uses a dedicated independent read connection or blocks other work on its connection while active.
Test early close, an empty result, page boundaries, metadata, BLOB lifetime, concurrent writes, and close with a page request pending. An open SQLite reader can hold a WAL snapshot and delay checkpoints, so document that cost and verify cleanup. Compare time to first page and peak memory with the eager API on a large result. Application code can use bounded keyset queries today; this issue is for a library-managed cursor.
Related: #30, #62, #389.
- Lenguaje dominante
- C
- Estrellas
- 579
- Forks
- 53
- Merge medio
- 2 d 3 h
- PR fusionados (30 d)
- 70
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 margelo/react-native-nitro-sqlite
-
feat: bind named SQL parametersAbiertoarea:api area:runtime enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
margelo/react-native-nitro-sqlite#402 ·
Los mantenedores suelen responder en 1 día
-
area:api area:runtime enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 28/100
margelo/react-native-nitro-sqlite#401 ·
Los mantenedores suelen responder en 1 día
-
area:api area:runtime enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
margelo/react-native-nitro-sqlite#400 ·
Los mantenedores suelen responder en 1 día
-
area:api area:runtime enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
margelo/react-native-nitro-sqlite#398 ·
Los mantenedores suelen responder en 1 día
-
area:api area:runtime enhancement
Dificultad 5/5 Más de una semana Aptitud para principiantes 48/100
margelo/react-native-nitro-sqlite#397 ·
Los mantenedores suelen responder en 1 día
Todos los issues de margelo/react-native-nitro-sqlite
Issues similares
-
Policy query leaks host primary block (BSL_PrimaryBlock_deinit skipped) on two early-exit pathsAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
NASA-AMMOS/BSL#355 ·
Los mantenedores suelen responder en 1 día
-
#242 leftovers: dated narrative and shas in the social-features test planPosiblemente ocupada Un pull request vinculado a esta issue está abierto o ya se fusionó. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
EchoTools/nevr-runtime#264 ·
Los mantenedores suelen responder en 1 día
-
area/docdb kind/bug priority/medium status/awaiting-triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
yugabyte/yugabyte-db#34873 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 70/100
Los mantenedores suelen responder en 1 día
-
[sqlcipher] update to 4.19.0Abiertocategory:port-update
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días