mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-13 07:12:19 -04:00
Support stable identifiers for MSC3440: Threading (#12151)
The unstable identifiers are still supported if the experimental configuration flag is enabled. The unstable identifiers will be removed in a future release.
This commit is contained in:
parent
52a947dc46
commit
ea27528b5d
13 changed files with 109 additions and 81 deletions
|
@ -325,21 +325,23 @@ def filter_to_clause(event_filter: Optional[Filter]) -> Tuple[str, List[str]]:
|
|||
args.extend(event_filter.labels)
|
||||
|
||||
# Filter on relation_senders / relation types from the joined tables.
|
||||
if event_filter.relation_senders:
|
||||
if event_filter.related_by_senders:
|
||||
clauses.append(
|
||||
"(%s)"
|
||||
% " OR ".join(
|
||||
"related_event.sender = ?" for _ in event_filter.relation_senders
|
||||
"related_event.sender = ?" for _ in event_filter.related_by_senders
|
||||
)
|
||||
)
|
||||
args.extend(event_filter.relation_senders)
|
||||
args.extend(event_filter.related_by_senders)
|
||||
|
||||
if event_filter.relation_types:
|
||||
if event_filter.related_by_rel_types:
|
||||
clauses.append(
|
||||
"(%s)"
|
||||
% " OR ".join("relation_type = ?" for _ in event_filter.relation_types)
|
||||
% " OR ".join(
|
||||
"relation_type = ?" for _ in event_filter.related_by_rel_types
|
||||
)
|
||||
)
|
||||
args.extend(event_filter.relation_types)
|
||||
args.extend(event_filter.related_by_rel_types)
|
||||
|
||||
return " AND ".join(clauses), args
|
||||
|
||||
|
@ -1203,7 +1205,7 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore):
|
|||
# If there is a filter on relation_senders and relation_types join to the
|
||||
# relations table.
|
||||
if event_filter and (
|
||||
event_filter.relation_senders or event_filter.relation_types
|
||||
event_filter.related_by_senders or event_filter.related_by_rel_types
|
||||
):
|
||||
# Filtering by relations could cause the same event to appear multiple
|
||||
# times (since there's no limit on the number of relations to an event).
|
||||
|
@ -1211,7 +1213,7 @@ class StreamWorkerStore(EventsWorkerStore, SQLBaseStore):
|
|||
join_clause += """
|
||||
LEFT JOIN event_relations AS relation ON (event.event_id = relation.relates_to_id)
|
||||
"""
|
||||
if event_filter.relation_senders:
|
||||
if event_filter.related_by_senders:
|
||||
join_clause += """
|
||||
LEFT JOIN events AS related_event ON (relation.event_id = related_event.event_id)
|
||||
"""
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue