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
|
// cancel any peeks for it
|
||||||
sp, err = s.db.DeletePeeks(ctx, ev.RoomID(), *ev.StateKey())
|
peekSP, peekErr := s.db.DeletePeeks(ctx, ev.RoomID(), *ev.StateKey())
|
||||||
// XXX: should we do anything with this new streampos?
|
if peekErr != nil {
|
||||||
if err != nil {
|
return sp, fmt.Errorf("s.db.DeletePeeks: %w", peekErr)
|
||||||
return sp, fmt.Errorf("s.db.DeletePeeks: %w", err)
|
}
|
||||||
|
if peekSP > 0 {
|
||||||
|
sp = peekSP
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return sp, nil
|
return sp, nil
|
||||||
|
|
|
||||||
|
|
@ -187,6 +187,7 @@ func (d *Database) DeletePeeks(
|
||||||
return err
|
return err
|
||||||
})
|
})
|
||||||
if err == sql.ErrNoRows {
|
if err == sql.ErrNoRows {
|
||||||
|
sp = 0
|
||||||
err = nil
|
err = nil
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -129,13 +129,23 @@ func (s *peekStatements) DeletePeek(
|
||||||
|
|
||||||
func (s *peekStatements) DeletePeeks(
|
func (s *peekStatements) DeletePeeks(
|
||||||
ctx context.Context, txn *sql.Tx, roomID, userID string,
|
ctx context.Context, txn *sql.Tx, roomID, userID string,
|
||||||
) (streamPos types.StreamPosition, err error) {
|
) (types.StreamPosition, error) {
|
||||||
streamPos, err = s.streamIDStatements.nextStreamID(ctx, txn)
|
streamPos, err := s.streamIDStatements.nextStreamID(ctx, txn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return 0, err
|
||||||
}
|
}
|
||||||
_, err = sqlutil.TxStmt(txn, s.deletePeeksStmt).ExecContext(ctx, streamPos, roomID, userID)
|
result, err := sqlutil.TxStmt(txn, s.deletePeeksStmt).ExecContext(ctx, streamPos, roomID, userID)
|
||||||
return
|
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(
|
func (s *peekStatements) SelectPeeksInRange(
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue