|
|
|
@ -1740,42 +1740,6 @@ class EventPushActionsWorkerStore(ReceiptsWorkerStore, StreamWorkerStore, SQLBas |
|
|
|
|
# We sleep to ensure that we don't overwhelm the DB. |
|
|
|
|
await self._clock.sleep(1.0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EventPushActionsStore(EventPushActionsWorkerStore): |
|
|
|
|
EPA_HIGHLIGHT_INDEX = "epa_highlight_index" |
|
|
|
|
|
|
|
|
|
def __init__( |
|
|
|
|
self, |
|
|
|
|
database: DatabasePool, |
|
|
|
|
db_conn: LoggingDatabaseConnection, |
|
|
|
|
hs: "HomeServer", |
|
|
|
|
): |
|
|
|
|
super().__init__(database, db_conn, hs) |
|
|
|
|
|
|
|
|
|
self.db_pool.updates.register_background_index_update( |
|
|
|
|
self.EPA_HIGHLIGHT_INDEX, |
|
|
|
|
index_name="event_push_actions_u_highlight", |
|
|
|
|
table="event_push_actions", |
|
|
|
|
columns=["user_id", "stream_ordering"], |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
self.db_pool.updates.register_background_index_update( |
|
|
|
|
"event_push_actions_highlights_index", |
|
|
|
|
index_name="event_push_actions_highlights_index", |
|
|
|
|
table="event_push_actions", |
|
|
|
|
columns=["user_id", "room_id", "topological_ordering", "stream_ordering"], |
|
|
|
|
where_clause="highlight=1", |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# Add index to make deleting old push actions faster. |
|
|
|
|
self.db_pool.updates.register_background_index_update( |
|
|
|
|
"event_push_actions_stream_highlight_index", |
|
|
|
|
index_name="event_push_actions_stream_highlight_index", |
|
|
|
|
table="event_push_actions", |
|
|
|
|
columns=["highlight", "stream_ordering"], |
|
|
|
|
where_clause="highlight=0", |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
async def get_push_actions_for_user( |
|
|
|
|
self, |
|
|
|
|
user_id: str, |
|
|
|
@ -1834,6 +1798,42 @@ class EventPushActionsStore(EventPushActionsWorkerStore): |
|
|
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class EventPushActionsStore(EventPushActionsWorkerStore): |
|
|
|
|
EPA_HIGHLIGHT_INDEX = "epa_highlight_index" |
|
|
|
|
|
|
|
|
|
def __init__( |
|
|
|
|
self, |
|
|
|
|
database: DatabasePool, |
|
|
|
|
db_conn: LoggingDatabaseConnection, |
|
|
|
|
hs: "HomeServer", |
|
|
|
|
): |
|
|
|
|
super().__init__(database, db_conn, hs) |
|
|
|
|
|
|
|
|
|
self.db_pool.updates.register_background_index_update( |
|
|
|
|
self.EPA_HIGHLIGHT_INDEX, |
|
|
|
|
index_name="event_push_actions_u_highlight", |
|
|
|
|
table="event_push_actions", |
|
|
|
|
columns=["user_id", "stream_ordering"], |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
self.db_pool.updates.register_background_index_update( |
|
|
|
|
"event_push_actions_highlights_index", |
|
|
|
|
index_name="event_push_actions_highlights_index", |
|
|
|
|
table="event_push_actions", |
|
|
|
|
columns=["user_id", "room_id", "topological_ordering", "stream_ordering"], |
|
|
|
|
where_clause="highlight=1", |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
# Add index to make deleting old push actions faster. |
|
|
|
|
self.db_pool.updates.register_background_index_update( |
|
|
|
|
"event_push_actions_stream_highlight_index", |
|
|
|
|
index_name="event_push_actions_stream_highlight_index", |
|
|
|
|
table="event_push_actions", |
|
|
|
|
columns=["highlight", "stream_ordering"], |
|
|
|
|
where_clause="highlight=0", |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _action_has_highlight(actions: Collection[Union[Mapping, str]]) -> bool: |
|
|
|
|
for action in actions: |
|
|
|
|
if not isinstance(action, dict): |
|
|
|
|