mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-12-15 22:13:52 -05:00
Add support for storing rejected events in EventContext and data stores
This commit is contained in:
parent
b390bf39f2
commit
b1b85753d7
6 changed files with 83 additions and 11 deletions
|
|
@ -30,6 +30,7 @@ from .transactions import TransactionStore
|
|||
from .keys import KeyStore
|
||||
from .event_federation import EventFederationStore
|
||||
from .media_repository import MediaRepositoryStore
|
||||
from .rejections import RejectionsStore
|
||||
|
||||
from .state import StateStore
|
||||
from .signatures import SignatureStore
|
||||
|
|
@ -66,7 +67,7 @@ SCHEMAS = [
|
|||
|
||||
# Remember to update this number every time an incompatible change is made to
|
||||
# database schema files, so the users will be informed on server restarts.
|
||||
SCHEMA_VERSION = 11
|
||||
SCHEMA_VERSION = 12
|
||||
|
||||
|
||||
class _RollbackButIsFineException(Exception):
|
||||
|
|
@ -82,6 +83,7 @@ class DataStore(RoomMemberStore, RoomStore,
|
|||
DirectoryStore, KeyStore, StateStore, SignatureStore,
|
||||
EventFederationStore,
|
||||
MediaRepositoryStore,
|
||||
RejectionsStore,
|
||||
):
|
||||
|
||||
def __init__(self, hs):
|
||||
|
|
@ -224,6 +226,9 @@ class DataStore(RoomMemberStore, RoomStore,
|
|||
if not outlier:
|
||||
self._store_state_groups_txn(txn, event, context)
|
||||
|
||||
if context.rejected:
|
||||
self._store_rejections_txn(txn, event.event_id, context.rejected)
|
||||
|
||||
if current_state:
|
||||
txn.execute(
|
||||
"DELETE FROM current_state_events WHERE room_id = ?",
|
||||
|
|
@ -262,7 +267,7 @@ class DataStore(RoomMemberStore, RoomStore,
|
|||
or_replace=True,
|
||||
)
|
||||
|
||||
if is_new_state:
|
||||
if is_new_state and not context.rejected:
|
||||
self._simple_insert_txn(
|
||||
txn,
|
||||
"current_state_events",
|
||||
|
|
@ -288,7 +293,7 @@ class DataStore(RoomMemberStore, RoomStore,
|
|||
or_ignore=True,
|
||||
)
|
||||
|
||||
if not backfilled:
|
||||
if not backfilled and not context.rejected:
|
||||
self._simple_insert_txn(
|
||||
txn,
|
||||
table="state_forward_extremities",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue