From e21137b9b6b1cedf559608aaf948fb48e775d69a Mon Sep 17 00:00:00 2001 From: Oliver Tonnhofer Date: Fri, 12 Jul 2013 15:12:44 +0200 Subject: [PATCH] write expired tiles in single transaction --- expire/collect.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/expire/collect.go b/expire/collect.go index 73d1067..7af1e43 100644 --- a/expire/collect.go +++ b/expire/collect.go @@ -149,6 +149,11 @@ func WriteTileExpireDb(tiles []tile, dbfile string) error { } defer db.Close() + tx, err := db.Begin() + if err != nil { + return err + } + stmts := []string{ `create table if not exists tiles ( x integer, @@ -159,13 +164,13 @@ func WriteTileExpireDb(tiles []tile, dbfile string) error { )`, } for _, stmt := range stmts { - _, err := db.Exec(stmt) + _, err := tx.Exec(stmt) if err != nil { return err } } - stmt, err := db.Prepare(`insert or replace into tiles (x, y, z, time) values (?, ?, ?, DATETIME('now'))`) + stmt, err := tx.Prepare(`insert or replace into tiles (x, y, z, time) values (?, ?, ?, DATETIME('now'))`) if err != nil { return err } @@ -177,5 +182,5 @@ func WriteTileExpireDb(tiles []tile, dbfile string) error { return err } } - return nil + return tx.Commit() }