write expired tiles in single transaction

master
Oliver Tonnhofer 2013-07-12 15:12:44 +02:00
parent 766bc6ebc1
commit e21137b9b6
1 changed files with 8 additions and 3 deletions

View File

@ -149,6 +149,11 @@ func WriteTileExpireDb(tiles []tile, dbfile string) error {
} }
defer db.Close() defer db.Close()
tx, err := db.Begin()
if err != nil {
return err
}
stmts := []string{ stmts := []string{
`create table if not exists tiles ( `create table if not exists tiles (
x integer, x integer,
@ -159,13 +164,13 @@ func WriteTileExpireDb(tiles []tile, dbfile string) error {
)`, )`,
} }
for _, stmt := range stmts { for _, stmt := range stmts {
_, err := db.Exec(stmt) _, err := tx.Exec(stmt)
if err != nil { if err != nil {
return err 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 { if err != nil {
return err return err
} }
@ -177,5 +182,5 @@ func WriteTileExpireDb(tiles []tile, dbfile string) error {
return err return err
} }
} }
return nil return tx.Commit()
} }