foreign keysgood first issuepanic
Metriche repository
- Star
- (19.103 star)
- Metriche merge PR
- (Metriche PR in attesa)
Descrizione
Description
Self-referential or circular foreign key CASCADE constraints cause stack overflow.
Reproducer
PRAGMA foreign_keys = ON;
CREATE TABLE T (
id INTEGER PRIMARY KEY,
parent_id INTEGER REFERENCES T(id) ON DELETE CASCADE
);
INSERT INTO T VALUES (1, NULL), (2, 1), (3, 2), (4, 3);
DELETE FROM T WHERE id = 1;
Crash Message
thread 'main' has overflowed its stack
fatal runtime error: stack overflow, aborting
Per SQLite documentation: "SQLite limits the depth of recursion of triggers in order to prevent a statement involving recursive triggers from using an unbounded amount of memory." The default MAX_TRIGGER_DEPTH is 1000. Turso has no depth limit.
core/translate/fkeys.rs:1444-1665 - Recursive subprograms without depth tracking.
This issue brought to you by Mikaël and Claude Code.