back interdiff of round #2 and #1

*/db: actually enable foreign keys #459

merged
opened by winter.bsky.social targeting master from winter.bsky.social/core: push-zrzuvtwqqook

sql.DB pools connections, which means that there's a good chance that our foreign keys aren't actually being enforced, unless a goroutine happens to be using the connection that was made when we set pragma foreign_keys = 1.

Signed-off-by: Winter winter@winter.cafe

files
appview
db
cmd
punchcardPopulate
eventconsumer
cursor
knotserver
db
rbac
spindle
db
secrets
REVERTED
appview/db/db.go
··· 27 } 28 29 func Make(dbPath string) (*DB, error) { 30 - db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1") 31 if err != nil { 32 return nil, err 33 } 34 _, err = db.Exec(` 35 pragma journal_mode = WAL; 36 pragma synchronous = normal; 37 pragma temp_store = memory; 38 pragma mmap_size = 30000000000; 39 pragma page_size = 32768;
··· 27 } 28 29 func Make(dbPath string) (*DB, error) { 30 + db, err := sql.Open("sqlite3", dbPath) 31 if err != nil { 32 return nil, err 33 } 34 _, err = db.Exec(` 35 pragma journal_mode = WAL; 36 pragma synchronous = normal; 37 + pragma foreign_keys = on; 38 pragma temp_store = memory; 39 pragma mmap_size = 30000000000; 40 pragma page_size = 32768;
ERROR
cmd/punchcardPopulate/main.go

Failed to calculate interdiff for this file.

ERROR
eventconsumer/cursor/sqlite.go

Failed to calculate interdiff for this file.

REVERTED
knotserver/db/init.go
··· 11 } 12 13 func Setup(dbPath string) (*DB, error) { 14 - db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1") 15 if err != nil { 16 return nil, err 17 } ··· 19 _, err = db.Exec(` 20 pragma journal_mode = WAL; 21 pragma synchronous = normal; 22 pragma temp_store = memory; 23 pragma mmap_size = 30000000000; 24 pragma page_size = 32768;
··· 11 } 12 13 func Setup(dbPath string) (*DB, error) { 14 + db, err := sql.Open("sqlite3", dbPath) 15 if err != nil { 16 return nil, err 17 } ··· 19 _, err = db.Exec(` 20 pragma journal_mode = WAL; 21 pragma synchronous = normal; 22 + pragma foreign_keys = on; 23 pragma temp_store = memory; 24 pragma mmap_size = 30000000000; 25 pragma page_size = 32768;
ERROR
rbac/rbac.go

Failed to calculate interdiff for this file.

ERROR
rbac/rbac_test.go

Failed to calculate interdiff for this file.

REVERTED
spindle/db/db.go
··· 11 } 12 13 func Make(dbPath string) (*DB, error) { 14 - db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1") 15 if err != nil { 16 return nil, err 17 } ··· 19 _, err = db.Exec(` 20 pragma journal_mode = WAL; 21 pragma synchronous = normal; 22 pragma temp_store = memory; 23 pragma mmap_size = 30000000000; 24 pragma page_size = 32768;
··· 11 } 12 13 func Make(dbPath string) (*DB, error) { 14 + db, err := sql.Open("sqlite3", dbPath) 15 if err != nil { 16 return nil, err 17 } ··· 19 _, err = db.Exec(` 20 pragma journal_mode = WAL; 21 pragma synchronous = normal; 22 + pragma foreign_keys = on; 23 pragma temp_store = memory; 24 pragma mmap_size = 30000000000; 25 pragma page_size = 32768;
ERROR
spindle/secrets/sqlite.go

Failed to calculate interdiff for this file.