1
0
Fork 0

server/database.go: remove unnecessary function/code

This commit is contained in:
Aaron Lindsay 2013-03-17 23:04:04 -04:00
parent a4bce8a07b
commit 4fda36f75e
1 changed files with 11 additions and 45 deletions

View File

@ -3,9 +3,7 @@ package main
import ( import (
"asink" "asink"
"database/sql" "database/sql"
"errors"
_ "github.com/mattn/go-sqlite3" _ "github.com/mattn/go-sqlite3"
"strconv"
) )
func GetAndInitDB() (*sql.DB, error) { func GetAndInitDB() (*sql.DB, error) {
@ -38,11 +36,19 @@ func GetAndInitDB() (*sql.DB, error) {
return db, nil return db, nil
} }
func DatabaseAddEvent(db *sql.DB, e *asink.Event) error { func DatabaseAddEvent(db *sql.DB, e *asink.Event) (err error) {
tx, err := db.Begin() tx, err := db.Begin()
if err != nil { if err != nil {
return err return err
} }
//make sure the transaction gets rolled back on error, and the database gets unlocked
defer func() {
if err != nil {
tx.Rollback()
}
}()
result, err := tx.Exec("INSERT INTO events (localid, type, status, path, hash, timestamp, permissions) VALUES (?,?,?,?,?,?,?);", e.LocalId, e.Type, e.Status, e.Path, e.Hash, e.Timestamp, e.Permissions) result, err := tx.Exec("INSERT INTO events (localid, type, status, path, hash, timestamp, permissions) VALUES (?,?,?,?,?,?,?);", e.LocalId, e.Type, e.Status, e.Path, e.Hash, e.Timestamp, e.Permissions)
if err != nil { if err != nil {
return err return err
@ -61,43 +67,8 @@ func DatabaseAddEvent(db *sql.DB, e *asink.Event) error {
return nil return nil
} }
func DatabaseUpdateEvent(db *sql.DB, e *asink.Event) error { func DatabaseRetrieveEvents(db *sql.DB, firstId uint64, maxEvents uint) (events []*asink.Event, err error) {
if !e.InDB { rows, err := db.Query("SELECT id, localid, type, status, path, hash, timestamp, permissions FROM events WHERE id >= ? ORDER BY id ASC LIMIT ?;", firstId, maxEvents)
return errors.New("Attempting to update an event in the database which hasn't been previously added.")
}
tx, err := db.Begin()
if err != nil {
return err
}
result, err := tx.Exec("UPDATE events SET id=?, type=?, status=?, path=?, hash=?, timestamp=?, permissions=? WHERE id=?;", e.Id, e.Type, e.Status, e.Path, e.Hash, e.Timestamp, e.Permissions, e.Id)
if err != nil {
return err
}
rows, err := result.RowsAffected()
if err != nil {
return err
}
if rows != 1 {
return errors.New("Updated " + strconv.Itoa(int(rows)) + " row(s) when intending to update 1 event row.")
}
err = tx.Commit()
if err != nil {
return err
}
return nil
}
func DatabaseRetrieveEvents(db *sql.DB, firstId uint64, maxEvents uint) ([]*asink.Event, error) {
var events []*asink.Event
tx, err := db.Begin()
if err != nil {
return nil, err
}
rows, err := tx.Query("SELECT id, localid, type, status, path, hash, timestamp, permissions FROM events WHERE id >= ? ORDER BY id ASC LIMIT ?;", firstId, maxEvents)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@ -110,10 +81,5 @@ func DatabaseRetrieveEvents(db *sql.DB, firstId uint64, maxEvents uint) ([]*asin
events = append(events, &event) events = append(events, &event)
} }
err = tx.Commit()
if err != nil {
return nil, err
}
return events, nil return events, nil
} }