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
···
}
func Make(dbPath string) (*DB, error) {
+
db, err := sql.Open("sqlite3", dbPath)
-
db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1")
if err != nil {
return nil, err
}
_, err = db.Exec(`
pragma journal_mode = WAL;
pragma synchronous = normal;
+
pragma foreign_keys = on;
pragma temp_store = memory;
pragma mmap_size = 30000000000;
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
···
}
func Setup(dbPath string) (*DB, error) {
+
db, err := sql.Open("sqlite3", dbPath)
-
db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1")
if err != nil {
return nil, err
}
···
_, err = db.Exec(`
pragma journal_mode = WAL;
pragma synchronous = normal;
+
pragma foreign_keys = on;
pragma temp_store = memory;
pragma mmap_size = 30000000000;
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
···
}
func Make(dbPath string) (*DB, error) {
+
db, err := sql.Open("sqlite3", dbPath)
-
db, err := sql.Open("sqlite3", dbPath+"?_foreign_keys=1")
if err != nil {
return nil, err
}
···
_, err = db.Exec(`
pragma journal_mode = WAL;
pragma synchronous = normal;
+
pragma foreign_keys = on;
pragma temp_store = memory;
pragma mmap_size = 30000000000;
pragma page_size = 32768;
ERROR
spindle/secrets/sqlite.go

Failed to calculate interdiff for this file.