mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-12-15 20:18:56 -05:00
Merge branch 'develop' of github.com:matrix-org/synapse into erikj/sqlite_native_upsert
This commit is contained in:
commit
431e485914
13 changed files with 120 additions and 7 deletions
|
|
@ -15,7 +15,6 @@
|
|||
|
||||
import struct
|
||||
import threading
|
||||
from sqlite3 import sqlite_version_info
|
||||
|
||||
from synapse.storage.prepare_database import prepare_database
|
||||
|
||||
|
|
@ -40,7 +39,7 @@ class Sqlite3Engine(object):
|
|||
# when its enabled.
|
||||
# FIXME: Figure out what is wrong so we can re-enable native upserts
|
||||
|
||||
# return sqlite_version_info >= (3, 24, 0)
|
||||
# return self.module.sqlite_version_info >= (3, 24, 0)
|
||||
return False
|
||||
|
||||
def check_database(self, txn):
|
||||
|
|
|
|||
|
|
@ -437,6 +437,30 @@ class StateGroupWorkerStore(EventsWorkerStore, SQLBaseStore):
|
|||
create_event = yield self.get_event(create_id)
|
||||
defer.returnValue(create_event.content.get("room_version", "1"))
|
||||
|
||||
@defer.inlineCallbacks
|
||||
def get_room_predecessor(self, room_id):
|
||||
"""Get the predecessor room of an upgraded room if one exists.
|
||||
Otherwise return None.
|
||||
|
||||
Args:
|
||||
room_id (str)
|
||||
|
||||
Returns:
|
||||
Deferred[unicode|None]: predecessor room id
|
||||
"""
|
||||
state_ids = yield self.get_current_state_ids(room_id)
|
||||
create_id = state_ids.get((EventTypes.Create, ""))
|
||||
|
||||
# If we can't find the create event, assume we've hit a dead end
|
||||
if not create_id:
|
||||
defer.returnValue(None)
|
||||
|
||||
# Retrieve the room's create event
|
||||
create_event = yield self.get_event(create_id)
|
||||
|
||||
# Return predecessor if present
|
||||
defer.returnValue(create_event.content.get("predecessor", None))
|
||||
|
||||
@cached(max_entries=100000, iterable=True)
|
||||
def get_current_state_ids(self, room_id):
|
||||
"""Get the current state event ids for a room based on the
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue