Skip to content

Commit ad8ab94

Browse files
committed
sqlite: set PRAGMA synchronous=NORMAL by default
Signed-off-by: David Crawshaw <crawshaw@tailscale.com>
1 parent 0d51bfd commit ad8ab94

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

sqlite.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,10 +147,28 @@ func (p *connector) Connect(ctx context.Context) (driver.Conn, error) {
147147
return nil, fmt.Errorf("sqlite.Open: wal_autocheckpoint: %w", err)
148148
}
149149

150+
if err := pragmaSynchronousNormal(db); err != nil {
151+
db.Close()
152+
return nil, fmt.Errorf("sqlite.open: %w", err)
153+
}
154+
150155
c := &conn{db: db, traceFunc: p.traceFunc}
151156
return c, nil
152157
}
153158

159+
func pragmaSynchronousNormal(db sqliteh.DB) error {
160+
const query = "PRAGMA synchronous=NORMAL;"
161+
cstmt, _, err := db.Prepare(query, 0)
162+
if err != nil {
163+
return reserr(db, "Open", query, err)
164+
}
165+
defer cstmt.Finalize()
166+
if _, _, _, _, err := cstmt.StepResult(); err != nil {
167+
return reserr(db, "Open", query, err)
168+
}
169+
return nil
170+
}
171+
154172
type conn struct {
155173
db sqliteh.DB
156174
traceFunc TraceFunc

0 commit comments

Comments
 (0)