mirror of
https://github.com/matrix-org/dendrite.git
synced 2025-12-23 14:53:10 -06:00
Fix sqlite DeletePeeks API to match postgres; fix bug which incorrectly altered sp when nothing is deleted
This commit is contained in:
parent
15349d8287
commit
34b89619f2
|
|
@ -216,10 +216,12 @@ func (s *OutputRoomEventConsumer) notifyJoinedPeeks(ctx context.Context, ev *gom
|
|||
}
|
||||
|
||||
// cancel any peeks for it
|
||||
sp, err = s.db.DeletePeeks(ctx, ev.RoomID(), *ev.StateKey())
|
||||
// XXX: should we do anything with this new streampos?
|
||||
if err != nil {
|
||||
return sp, fmt.Errorf("s.db.DeletePeeks: %w", err)
|
||||
peekSP, peekErr := s.db.DeletePeeks(ctx, ev.RoomID(), *ev.StateKey())
|
||||
if peekErr != nil {
|
||||
return sp, fmt.Errorf("s.db.DeletePeeks: %w", peekErr)
|
||||
}
|
||||
if peekSP > 0 {
|
||||
sp = peekSP
|
||||
}
|
||||
}
|
||||
return sp, nil
|
||||
|
|
|
|||
|
|
@ -187,6 +187,7 @@ func (d *Database) DeletePeeks(
|
|||
return err
|
||||
})
|
||||
if err == sql.ErrNoRows {
|
||||
sp = 0
|
||||
err = nil
|
||||
}
|
||||
return
|
||||
|
|
|
|||
|
|
@ -129,13 +129,23 @@ func (s *peekStatements) DeletePeek(
|
|||
|
||||
func (s *peekStatements) DeletePeeks(
|
||||
ctx context.Context, txn *sql.Tx, roomID, userID string,
|
||||
) (streamPos types.StreamPosition, err error) {
|
||||
streamPos, err = s.streamIDStatements.nextStreamID(ctx, txn)
|
||||
) (types.StreamPosition, error) {
|
||||
streamPos, err := s.streamIDStatements.nextStreamID(ctx, txn)
|
||||
if err != nil {
|
||||
return
|
||||
return 0, err
|
||||
}
|
||||
_, err = sqlutil.TxStmt(txn, s.deletePeeksStmt).ExecContext(ctx, streamPos, roomID, userID)
|
||||
return
|
||||
result, err := sqlutil.TxStmt(txn, s.deletePeeksStmt).ExecContext(ctx, streamPos, roomID, userID)
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
numAffected, err := result.RowsAffected()
|
||||
if err != nil {
|
||||
return 0, err
|
||||
}
|
||||
if numAffected == 0 {
|
||||
return 0, sql.ErrNoRows
|
||||
}
|
||||
return streamPos, nil
|
||||
}
|
||||
|
||||
func (s *peekStatements) SelectPeeksInRange(
|
||||
|
|
|
|||
Loading…
Reference in a new issue