Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

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

Offen
#66,193 0 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

@trivikr arbeitet bereits daran.

Seit 22.9.2026.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Beschreibung

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

Vorherrschende Sprache
JavaScript
Sterne
122k
Forks
37.4k
Ø Merge
4 T. 2 Std.
Gemergte PRs (30 T.)
277

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus nodejs/node

Alle Issues in nodejs/node

Ähnliche Issues

Weitere Issues zu JavaScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.