parent
							
								
									c77c4a2fcd
								
							
						
					
					
						commit
						3e87d79e1c
					
				|  | @ -0,0 +1 @@ | |||
| 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, | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Erik Johnston
						Erik Johnston