mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-02 10:06:05 -04:00
Refactor to ensure we call check_consistency (#9470)
The idea here is to stop people forgetting to call `check_consistency`. Folks can still just pass in `None` to the new args in `build_sequence_generator`, but hopefully they won't.
This commit is contained in:
parent
713145d3de
commit
0b5c967813
8 changed files with 72 additions and 28 deletions
|
@ -251,9 +251,14 @@ class LocalSequenceGenerator(SequenceGenerator):
|
|||
|
||||
|
||||
def build_sequence_generator(
|
||||
db_conn: "LoggingDatabaseConnection",
|
||||
database_engine: BaseDatabaseEngine,
|
||||
get_first_callback: GetFirstCallbackType,
|
||||
sequence_name: str,
|
||||
table: Optional[str],
|
||||
id_column: Optional[str],
|
||||
stream_name: Optional[str] = None,
|
||||
positive: bool = True,
|
||||
) -> SequenceGenerator:
|
||||
"""Get the best impl of SequenceGenerator available
|
||||
|
||||
|
@ -265,8 +270,23 @@ def build_sequence_generator(
|
|||
get_first_callback: a callback which gets the next sequence ID. Used if
|
||||
we're on sqlite.
|
||||
sequence_name: the name of a postgres sequence to use.
|
||||
table, id_column, stream_name, positive: If set then `check_consistency`
|
||||
is called on the created sequence. See docstring for
|
||||
`check_consistency` details.
|
||||
"""
|
||||
if isinstance(database_engine, PostgresEngine):
|
||||
return PostgresSequenceGenerator(sequence_name)
|
||||
seq = PostgresSequenceGenerator(sequence_name) # type: SequenceGenerator
|
||||
else:
|
||||
return LocalSequenceGenerator(get_first_callback)
|
||||
seq = LocalSequenceGenerator(get_first_callback)
|
||||
|
||||
if table:
|
||||
assert id_column
|
||||
seq.check_consistency(
|
||||
db_conn=db_conn,
|
||||
table=table,
|
||||
id_column=id_column,
|
||||
stream_name=stream_name,
|
||||
positive=positive,
|
||||
)
|
||||
|
||||
return seq
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue