imposm3/database/postgis/router.go

54 lines
929 B
Go
Raw Normal View History

package postgis
2013-10-28 11:57:06 +04:00
type TxRouter struct {
2013-10-28 11:50:54 +04:00
Tables map[string]*TableTx
}
2013-10-28 11:57:06 +04:00
func newTxRouter(pg *PostGIS, bulkImport bool) *TxRouter {
ib := TxRouter{
2013-10-28 11:50:54 +04:00
Tables: make(map[string]*TableTx),
}
for tableName, table := range pg.Tables {
2013-10-28 17:59:16 +04:00
tt := NewTableTx(pg, table, bulkImport)
err := tt.Begin()
if err != nil {
panic(err) // TODO
}
ib.Tables[tableName] = tt
}
return &ib
}
2013-10-28 11:57:06 +04:00
func (ib *TxRouter) End() error {
for _, tt := range ib.Tables {
if err := tt.Commit(); err != nil {
return err
}
}
return nil
}
2013-10-28 11:57:06 +04:00
func (ib *TxRouter) Abort() error {
for _, tt := range ib.Tables {
tt.Rollback()
}
return nil
}
2013-10-28 11:57:06 +04:00
func (ib *TxRouter) Insert(table string, row []interface{}) {
2013-10-28 11:50:54 +04:00
tt, ok := ib.Tables[table]
if !ok {
panic("unknown table " + table)
}
tt.Insert(row)
}
2013-10-28 11:57:06 +04:00
func (ib *TxRouter) Delete(table string, id int64) {
2013-10-28 11:50:54 +04:00
tt, ok := ib.Tables[table]
if ok {
// panic("unknown table " + table)
tt.Delete(id)
}
}