Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

sqlite: re-filtering a virtual-table cursor skips generator cleanup

Abierto
#66,193 0 comentarios 0 reacciones 1 asignado Ver en GitHub

@trivikr ya está trabajando en esto.

Desde el 22/9/2026.

Evaluación

Este issue todavía no se ha evaluado.

Descripción

sqlite
Version

main

Platform
N/A
Subsystem

sqlite

What steps will reproduce the bug?
import { DatabaseSync } from 'node:sqlite';

const db = new DatabaseSync(':memory:');

let cleaned = 0;
db.createModule('m', {
  columns: [{ name: 'input', type: 'INTEGER', hidden: true }],
  *rows(input) {
    try { yield [input]; } finally { cleaned++; }
  },
});

db.exec('CREATE TABLE t(a); INSERT INTO t VALUES (1), (2)');
db.prepare('SELECT a FROM t WHERE EXISTS(SELECT 1 FROM m(t.a))').all();
console.log(cleaned);  // 1, expected 2
How often does it reproduce? Is there a required condition?

Always

What is the expected behavior? Why is that the expected behavior?

Both rows() calls (for t.a = 1 and t.a = 2) run their finally, so cleaned is 2.

What do you see instead?

cleaned is 1; the first generator is suspended and discarded by the re-filter and its finally never runs.

Additional information

No response

Lenguaje dominante
JavaScript
Estrellas
122k
Forks
37.4k
Merge medio
4 d 3 h
PR fusionados (30 d)
279

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de nodejs/node

Todos los issues de nodejs/node

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.