From 90d0eca14de5d4f317775b155664db3227a66f23 Mon Sep 17 00:00:00 2001 From: binwiederhier Date: Mon, 23 Feb 2026 11:17:57 -0500 Subject: [PATCH] Consistency --- message/store.go | 2 ++ webpush/store.go | 2 +- webpush/store_sqlite.go | 15 +++++++++------ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/message/store.go b/message/store.go index ba3ddc81..11d261f0 100644 --- a/message/store.go +++ b/message/store.go @@ -299,6 +299,8 @@ func (c *commonStore) Message(id string) (*model.Message, error) { // UpdateMessageTime updates the time column for a message by ID. This is only used for testing. func (c *commonStore) UpdateMessageTime(messageID string, timestamp int64) error { + c.maybeLock() + defer c.maybeUnlock() _, err := c.db.Exec(c.queries.updateMessageTime, timestamp, messageID) return err } diff --git a/webpush/store.go b/webpush/store.go index 81800431..4fc5d77f 100644 --- a/webpush/store.go +++ b/webpush/store.go @@ -157,7 +157,7 @@ func (s *commonStore) RemoveExpiredSubscriptions(expireAfter time.Duration) erro } // SetSubscriptionUpdatedAt updates the updated_at timestamp for a subscription by endpoint. This is -// exported for testing purposes and is not part of the Store interface. +// exported for testing purposes. func (s *commonStore) SetSubscriptionUpdatedAt(endpoint string, updatedAt int64) error { _, err := s.db.Exec(s.queries.updateSubscriptionUpdatedAt, updatedAt, endpoint) return err diff --git a/webpush/store_sqlite.go b/webpush/store_sqlite.go index 7fe4ba3f..a00c2e61 100644 --- a/webpush/store_sqlite.go +++ b/webpush/store_sqlite.go @@ -9,7 +9,6 @@ import ( const ( sqliteCreateWebPushSubscriptionsTableQuery = ` - BEGIN; CREATE TABLE IF NOT EXISTS subscription ( id TEXT PRIMARY KEY, endpoint TEXT NOT NULL, @@ -32,8 +31,7 @@ const ( CREATE TABLE IF NOT EXISTS schemaVersion ( id INT PRIMARY KEY, version INT NOT NULL - ); - COMMIT; + ); ` sqliteBuiltinStartupQueries = ` PRAGMA foreign_keys = ON; @@ -122,13 +120,18 @@ func setupSQLite(db *sql.DB) error { } func setupNewSQLite(db *sql.DB) error { - if _, err := db.Exec(sqliteCreateWebPushSubscriptionsTableQuery); err != nil { + tx, err := db.Begin() + if err != nil { return err } - if _, err := db.Exec(sqliteInsertWebPushSchemaVersionQuery, sqliteCurrentWebPushSchemaVersion); err != nil { + defer tx.Rollback() + if _, err := tx.Exec(sqliteCreateWebPushSubscriptionsTableQuery); err != nil { return err } - return nil + if _, err := tx.Exec(sqliteInsertWebPushSchemaVersionQuery, sqliteCurrentWebPushSchemaVersion); err != nil { + return err + } + return tx.Commit() } func runSQLiteStartupQueries(db *sql.DB, startupQueries string) error {