mirror of
https://github.com/matrix-org/dendrite.git
synced 2026-01-03 04:03:09 -06:00
Update query, use "from" as the initial lastPos
This commit is contained in:
parent
8be4762ff3
commit
5fab731c64
|
|
@ -73,8 +73,8 @@ const selectMaxPresenceSQL = "" +
|
||||||
const selectPresenceAfter = "" +
|
const selectPresenceAfter = "" +
|
||||||
" SELECT id, user_id, presence, status_msg, last_active_ts" +
|
" SELECT id, user_id, presence, status_msg, last_active_ts" +
|
||||||
" FROM syncapi_presence" +
|
" FROM syncapi_presence" +
|
||||||
" WHERE id > $1 AND last_active_ts > $2" +
|
" WHERE id > $1 AND last_active_ts >= $2" +
|
||||||
" ORDER BY id DESC, last_active_ts DESC LIMIT $3"
|
" ORDER BY id ASC LIMIT $3"
|
||||||
|
|
||||||
type presenceStatements struct {
|
type presenceStatements struct {
|
||||||
upsertPresenceStmt *sql.Stmt
|
upsertPresenceStmt *sql.Stmt
|
||||||
|
|
@ -150,7 +150,7 @@ func (p *presenceStatements) GetPresenceAfter(
|
||||||
) (presences map[string]*types.PresenceInternal, err error) {
|
) (presences map[string]*types.PresenceInternal, err error) {
|
||||||
presences = make(map[string]*types.PresenceInternal)
|
presences = make(map[string]*types.PresenceInternal)
|
||||||
stmt := sqlutil.TxStmt(txn, p.selectPresenceAfterStmt)
|
stmt := sqlutil.TxStmt(txn, p.selectPresenceAfterStmt)
|
||||||
afterTS := gomatrixserverlib.AsTimestamp(time.Now().Add(-time.Minute * 5))
|
afterTS := gomatrixserverlib.AsTimestamp(time.Now().Add(time.Minute * -5))
|
||||||
rows, err := stmt.QueryContext(ctx, after, afterTS, filter.Limit)
|
rows, err := stmt.QueryContext(ctx, after, afterTS, filter.Limit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
||||||
|
|
@ -72,8 +72,8 @@ const selectMaxPresenceSQL = "" +
|
||||||
const selectPresenceAfter = "" +
|
const selectPresenceAfter = "" +
|
||||||
" SELECT id, user_id, presence, status_msg, last_active_ts" +
|
" SELECT id, user_id, presence, status_msg, last_active_ts" +
|
||||||
" FROM syncapi_presence" +
|
" FROM syncapi_presence" +
|
||||||
" WHERE id > $1 AND last_active_ts > $2" +
|
" WHERE id > $1 AND last_active_ts >= $2" +
|
||||||
" ORDER BY id DESC, last_active_ts DESC LIMIT $3"
|
" ORDER BY id ASC LIMIT $3"
|
||||||
|
|
||||||
type presenceStatements struct {
|
type presenceStatements struct {
|
||||||
db *sql.DB
|
db *sql.DB
|
||||||
|
|
@ -164,7 +164,7 @@ func (p *presenceStatements) GetPresenceAfter(
|
||||||
) (presences map[string]*types.PresenceInternal, err error) {
|
) (presences map[string]*types.PresenceInternal, err error) {
|
||||||
presences = make(map[string]*types.PresenceInternal)
|
presences = make(map[string]*types.PresenceInternal)
|
||||||
stmt := sqlutil.TxStmt(txn, p.selectPresenceAfterStmt)
|
stmt := sqlutil.TxStmt(txn, p.selectPresenceAfterStmt)
|
||||||
afterTS := gomatrixserverlib.AsTimestamp(time.Now().Add(-time.Minute * 5))
|
afterTS := gomatrixserverlib.AsTimestamp(time.Now().Add(time.Minute * -5))
|
||||||
rows, err := stmt.QueryContext(ctx, after, afterTS, filter.Limit)
|
rows, err := stmt.QueryContext(ctx, after, afterTS, filter.Limit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
||||||
|
|
@ -94,7 +94,7 @@ func (p *PresenceStreamProvider) IncrementalSync(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
lastPos := to
|
lastPos := from
|
||||||
for _, presence := range presences {
|
for _, presence := range presences {
|
||||||
if presence == nil {
|
if presence == nil {
|
||||||
continue
|
continue
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue