mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-22 06:13:10 -06:00
Allow disabling txns again on updaters
This commit is contained in:
parent
1ecd40082e
commit
0e3bc7a3e6
|
|
@ -21,6 +21,7 @@ type membershipUpdater struct {
|
||||||
func NewMembershipUpdater(
|
func NewMembershipUpdater(
|
||||||
ctx context.Context, d *Database, roomID, targetUserID string,
|
ctx context.Context, d *Database, roomID, targetUserID string,
|
||||||
targetLocal bool, roomVersion gomatrixserverlib.RoomVersion,
|
targetLocal bool, roomVersion gomatrixserverlib.RoomVersion,
|
||||||
|
useTxns bool,
|
||||||
) (types.MembershipUpdater, func() error, error) {
|
) (types.MembershipUpdater, func() error, error) {
|
||||||
txn, err := d.DB.Begin()
|
txn, err := d.DB.Begin()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -43,6 +44,10 @@ func NewMembershipUpdater(
|
||||||
return nil, nil, fmt.Errorf("d.AssignStateKeyNID: %w", err)
|
return nil, nil, fmt.Errorf("d.AssignStateKeyNID: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if !useTxns {
|
||||||
|
txn = nil
|
||||||
|
}
|
||||||
|
|
||||||
updater, cleanup, err := d.membershipUpdaterTxn(ctx, txn, roomNID, targetUserNID, targetLocal)
|
updater, cleanup, err := d.membershipUpdaterTxn(ctx, txn, roomNID, targetUserNID, targetLocal)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, fmt.Errorf("d.membershipUpdaterTxn: %w", err)
|
return nil, nil, fmt.Errorf("d.membershipUpdaterTxn: %w", err)
|
||||||
|
|
|
||||||
|
|
@ -347,7 +347,7 @@ func (d *Database) MembershipUpdater(
|
||||||
ctx context.Context, roomID, targetUserID string,
|
ctx context.Context, roomID, targetUserID string,
|
||||||
targetLocal bool, roomVersion gomatrixserverlib.RoomVersion,
|
targetLocal bool, roomVersion gomatrixserverlib.RoomVersion,
|
||||||
) (types.MembershipUpdater, func() error, error) {
|
) (types.MembershipUpdater, func() error, error) {
|
||||||
return NewMembershipUpdater(ctx, d, roomID, targetUserID, targetLocal, roomVersion)
|
return NewMembershipUpdater(ctx, d, roomID, targetUserID, targetLocal, roomVersion, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Database) GetLatestEventsForUpdate(
|
func (d *Database) GetLatestEventsForUpdate(
|
||||||
|
|
|
||||||
|
|
@ -24,6 +24,7 @@ import (
|
||||||
"github.com/matrix-org/dendrite/roomserver/storage/shared"
|
"github.com/matrix-org/dendrite/roomserver/storage/shared"
|
||||||
"github.com/matrix-org/dendrite/roomserver/storage/tables"
|
"github.com/matrix-org/dendrite/roomserver/storage/tables"
|
||||||
"github.com/matrix-org/dendrite/roomserver/types"
|
"github.com/matrix-org/dendrite/roomserver/types"
|
||||||
|
"github.com/matrix-org/gomatrixserverlib"
|
||||||
_ "github.com/mattn/go-sqlite3"
|
_ "github.com/mattn/go-sqlite3"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -141,3 +142,10 @@ func (d *Database) GetLatestEventsForUpdate(
|
||||||
) (types.RoomRecentEventsUpdater, func() error, error) {
|
) (types.RoomRecentEventsUpdater, func() error, error) {
|
||||||
return shared.NewRoomRecentEventsUpdater(&d.Database, ctx, roomNID, false)
|
return shared.NewRoomRecentEventsUpdater(&d.Database, ctx, roomNID, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (d *Database) MembershipUpdater(
|
||||||
|
ctx context.Context, roomID, targetUserID string,
|
||||||
|
targetLocal bool, roomVersion gomatrixserverlib.RoomVersion,
|
||||||
|
) (types.MembershipUpdater, func() error, error) {
|
||||||
|
return shared.NewMembershipUpdater(ctx, &d.Database, roomID, targetUserID, targetLocal, roomVersion, false)
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue