Fix sql-preprocessor leading to deadlocks in parallel requests
This commit is contained in:
@@ -17,6 +17,7 @@ import (
|
||||
|
||||
type Database struct {
|
||||
db sq.DB
|
||||
pp *dbtools.DBPreprocessor
|
||||
}
|
||||
|
||||
func NewDatabase(conf server.Config) (*Database, error) {
|
||||
@@ -38,11 +39,16 @@ func NewDatabase(conf server.Config) (*Database, error) {
|
||||
|
||||
qqdb := sq.NewDB(xdb)
|
||||
|
||||
scndb := &Database{qqdb}
|
||||
|
||||
qqdb.AddListener(dbtools.DBLogger{})
|
||||
|
||||
qqdb.AddListener(dbtools.NewDBPreprocessor(scndb.db))
|
||||
pp, err := dbtools.NewDBPreprocessor(qqdb)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
qqdb.AddListener(pp)
|
||||
|
||||
scndb := &Database{db: qqdb, pp: pp}
|
||||
|
||||
return scndb, nil
|
||||
}
|
||||
@@ -64,6 +70,11 @@ func (db *Database) Migrate(ctx context.Context) error {
|
||||
return err
|
||||
}
|
||||
|
||||
err = db.pp.Init(ctx)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return nil
|
||||
|
||||
} else if currschema == 1 {
|
||||
|
||||
Reference in New Issue
Block a user