sqlcmig6: add transaction executor for Queries

This commit adds a helper struct that creates a `sqldb/v2` transaction
executor that wraps the `sqlcmig6.Queries` type.
This commit is contained in:
Viktor Torstensson 2025-08-27 15:29:16 +02:00
parent 9442c58cc1
commit 01d9c2a724
No known key found for this signature in database
GPG key ID: 961CC8259AE675D4

View file

@ -3,6 +3,7 @@ package sqlcmig6
import (
"context"
"database/sql"
"github.com/lightningnetwork/lnd/sqldb/v2"
)
type DBTX interface {
@ -25,3 +26,19 @@ func (q *Queries) WithTx(tx *sql.Tx) *Queries {
db: tx,
}
}
type TxExecutor struct {
*sqldb.TransactionExecutor[*Queries]
}
func NewTxExecutor(baseDB *sqldb.BaseDB, queries *Queries) *TxExecutor {
executor := sqldb.NewTransactionExecutor(
baseDB, func(tx *sql.Tx) *Queries {
return queries.WithTx(tx)
},
)
return &TxExecutor{
TransactionExecutor: executor,
}
}