diff --git a/synapse/handlers/sync.py b/synapse/handlers/sync.py
index c754cfdeeb..c05e3d107f 100644
--- a/synapse/handlers/sync.py
+++ b/synapse/handlers/sync.py
@@ -498,7 +498,7 @@ class SyncHandler(object):
if filter_members:
member_state_ids = {
t: state_ids[t]
- for t in state_ids if t[0] == EventTypes.member
+ for t in state_ids if t[0] == EventTypes.Member
}
else:
@@ -511,7 +511,7 @@ class SyncHandler(object):
if filter_members:
member_state_ids = {
t: state_ids[t]
- for t in state_ids if t[0] == EventTypes.member
+ for t in state_ids if t[0] == EventTypes.Member
}
timeline_state = {
@@ -542,7 +542,7 @@ class SyncHandler(object):
if filter_members:
member_state_ids = {
t: state_at_timeline_start[t]
- for t in state_ids if t[0] == EventTypes.member
+ for t in state_ids if t[0] == EventTypes.Member
}
timeline_state = {
diff --git a/synapse/storage/state.py b/synapse/storage/state.py
index 4291cde7ab..9c9994c073 100644
--- a/synapse/storage/state.py
+++ b/synapse/storage/state.py
@@ -257,10 +257,11 @@ class StateGroupWorkerStore(SQLBaseStore):
if include_other_types:
# XXX: check whether this slows postgres down like a list of
# ORs does too?
+ unique_types = set([ t for (t, _) in types ])
clause_to_args.append(
(
- "AND type <> ? " * len(types),
- [t for (t, _) in types]
+ "AND type <> ? " * len(unique_types),
+ list(unique_types)
)
)
else:
@@ -293,10 +294,11 @@ class StateGroupWorkerStore(SQLBaseStore):
where_args.extend([typ[0], typ[1]])
if include_other_types:
+ unique_types = set([ t for (t, _) in types ])
where_clauses.append(
- "(" + " AND ".join(["type <> ?"] * len(types)) + ")"
+ "(" + " AND ".join(["type <> ?"] * len(unique_types)) + ")"
)
- where_args.extend(t for (t, _) in types)
+ where_args.extend(list(unique_types))
where_clause = "AND (%s)" % (" OR ".join(where_clauses))
else:
|