merged from gramsrv upstream

This commit is contained in:
onysd 2026-09-01 12:06:31 +03:00
parent 79c64ee916
commit 21a0856587
651 changed files with 54774 additions and 4590 deletions

View file

@ -192,6 +192,7 @@ SELECT
COALESCE(m.effect, 0)::bigint AS effect,
COALESCE(m.reply_markup::text, '{}')::text AS reply_markup_json,
COALESCE(m.rich_message::text, '{}')::text AS rich_message_json,
COALESCE(m.deleted, false)::boolean AS message_deleted,
COALESCE(peer_u.id, 0)::bigint AS peer_user_id,
COALESCE(peer_u.access_hash, 0)::bigint AS peer_access_hash,
COALESCE(peer_u.phone, '')::text AS peer_phone,
@ -330,6 +331,7 @@ type BatchListDispatchEventsRow struct {
Effect int64
ReplyMarkupJson string
RichMessageJson string
MessageDeleted bool
PeerUserID int64
PeerAccessHash int64
PeerPhone string
@ -466,6 +468,7 @@ func (q *Queries) BatchListDispatchEvents(ctx context.Context, arg BatchListDisp
&i.Effect,
&i.ReplyMarkupJson,
&i.RichMessageJson,
&i.MessageDeleted,
&i.PeerUserID,
&i.PeerAccessHash,
&i.PeerPhone,
@ -703,8 +706,9 @@ WITH doomed AS MATERIALIZED (
FROM dispatch_outbox_user_heads h
WHERE h.status = 'failed'
AND h.updated_at < now() - make_interval(secs => $1::int)
AND h.target_user_id = ANY($2::bigint[])
ORDER BY h.updated_at ASC, h.target_user_id ASC, h.head_id ASC
LIMIT $2
LIMIT $3
FOR UPDATE OF h SKIP LOCKED
),
deleted AS (
@ -720,6 +724,7 @@ FROM deleted
type DeleteFailedDispatchOutboxParams struct {
OlderThanSeconds int32
TargetUserIds []int64
LimitCount int32
}
@ -727,7 +732,7 @@ type DeleteFailedDispatchOutboxParams struct {
// claim/completion 保持同一 user_heads→outbox 锁序。删除的只是在线任务durable
// user_update_events 不动,故客户端仍可经 difference 恢复。
func (q *Queries) DeleteFailedDispatchOutbox(ctx context.Context, arg DeleteFailedDispatchOutboxParams) (int32, error) {
row := q.db.QueryRow(ctx, deleteFailedDispatchOutbox, arg.OlderThanSeconds, arg.LimitCount)
row := q.db.QueryRow(ctx, deleteFailedDispatchOutbox, arg.OlderThanSeconds, arg.TargetUserIds, arg.LimitCount)
var deleted_count int32
err := row.Scan(&deleted_count)
return deleted_count, err
@ -846,6 +851,7 @@ SELECT
COALESCE(m.effect, 0)::bigint AS effect,
COALESCE(m.reply_markup::text, '{}')::text AS reply_markup_json,
COALESCE(m.rich_message::text, '{}')::text AS rich_message_json,
COALESCE(m.deleted, false)::boolean AS message_deleted,
COALESCE(peer_u.id, 0)::bigint AS peer_user_id,
COALESCE(peer_u.access_hash, 0)::bigint AS peer_access_hash,
COALESCE(peer_u.phone, '')::text AS peer_phone,
@ -987,6 +993,7 @@ type ListUserUpdateEventsAfterRow struct {
Effect int64
ReplyMarkupJson string
RichMessageJson string
MessageDeleted bool
PeerUserID int64
PeerAccessHash int64
PeerPhone string
@ -1121,6 +1128,7 @@ func (q *Queries) ListUserUpdateEventsAfter(ctx context.Context, arg ListUserUpd
&i.Effect,
&i.ReplyMarkupJson,
&i.RichMessageJson,
&i.MessageDeleted,
&i.PeerUserID,
&i.PeerAccessHash,
&i.PeerPhone,