diff --git a/database/postgis/postgis.go b/database/postgis/postgis.go index ea17544..a6101ca 100644 --- a/database/postgis/postgis.go +++ b/database/postgis/postgis.go @@ -543,13 +543,15 @@ func (pg *PostGIS) EnableGeneralizeUpdates() { } func (pg *PostGIS) Begin() error { - pg.txRouter = newTxRouter(pg, false) - return nil + var err error + pg.txRouter, err = newTxRouter(pg, false) + return err } func (pg *PostGIS) BeginBulk() error { - pg.txRouter = newTxRouter(pg, true) - return nil + var err error + pg.txRouter, err = newTxRouter(pg, true) + return err } func (pg *PostGIS) Abort() error { diff --git a/database/postgis/router.go b/database/postgis/router.go index 2f27adc..5ffb517 100644 --- a/database/postgis/router.go +++ b/database/postgis/router.go @@ -10,7 +10,7 @@ type TxRouter struct { tx *sql.Tx } -func newTxRouter(pg *PostGIS, bulkImport bool) *TxRouter { +func newTxRouter(pg *PostGIS, bulkImport bool) (*TxRouter, error) { txr := TxRouter{ Tables: make(map[string]TableTx), } @@ -20,7 +20,7 @@ func newTxRouter(pg *PostGIS, bulkImport bool) *TxRouter { tt := NewBulkTableTx(pg, table) err := tt.Begin(nil) if err != nil { - panic(err) // TODO + return nil, err } txr.Tables[tableName] = tt } @@ -34,7 +34,7 @@ func newTxRouter(pg *PostGIS, bulkImport bool) *TxRouter { tt := NewSynchronousTableTx(pg, table.FullName, table) err := tt.Begin(tx) if err != nil { - panic(err) // TODO + return nil, err } txr.Tables[tableName] = tt } @@ -42,13 +42,13 @@ func newTxRouter(pg *PostGIS, bulkImport bool) *TxRouter { tt := NewSynchronousTableTx(pg, table.FullName, table) err := tt.Begin(tx) if err != nil { - panic(err) // TODO + return nil, err } txr.Tables[tableName] = tt } } - return &txr + return &txr, nil } func (txr *TxRouter) End() error {