Skip to content
Snippets Groups Projects
Unverified Commit 3e87d79e authored by Erik Johnston's avatar Erik Johnston Committed by GitHub
Browse files

Fix schema delta for servers that have not backfilled (#8396)

Fixes #8395.
parent c77c4a2f
No related branches found
No related tags found
No related merge requests found
Add experimental support for sharding event persister.
......@@ -21,6 +21,8 @@ SELECT setval('events_stream_seq', (
CREATE SEQUENCE IF NOT EXISTS events_backfill_stream_seq;
-- If the server has never backfilled a room then doing `-MIN(...)` will give
-- a negative result, hence why we do `GREATEST(...)`
SELECT setval('events_backfill_stream_seq', (
SELECT COALESCE(-MIN(stream_ordering), 1) FROM events
SELECT GREATEST(COALESCE(-MIN(stream_ordering), 1), 1) FROM events
));
......@@ -287,8 +287,12 @@ class MultiWriterIdGenerator:
min_stream_id = min(self._current_positions.values(), default=None)
if min_stream_id is None:
# We add a GREATEST here to ensure that the result is always
# positive. (This can be a problem for e.g. backfill streams where
# the server has never backfilled).
sql = """
SELECT COALESCE(%(agg)s(%(id)s), 1) FROM %(table)s
SELECT GREATEST(COALESCE(%(agg)s(%(id)s), 1), 1)
FROM %(table)s
""" % {
"id": id_column,
"table": table,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment