diff --git a/synapse/storage/databases/main/__init__.py b/synapse/storage/databases/main/__init__.py
index b6028853c9..80c0304b19 100644
--- a/synapse/storage/databases/main/__init__.py
+++ b/synapse/storage/databases/main/__init__.py
@@ -15,7 +15,7 @@
# limitations under the License.
import logging
-from typing import TYPE_CHECKING, List, Optional, Tuple, Union, cast
+from typing import TYPE_CHECKING, List, Optional, Tuple, cast
from synapse.api.constants import Direction
from synapse.config.homeserver import HomeServerConfig
@@ -196,7 +196,7 @@ class DataStore(
txn: LoggingTransaction,
) -> Tuple[List[JsonDict], int]:
filters = []
- args: List[Union[str, int]] = []
+ args = [self.hs.config.server.server_name]
# Set ordering
order_by_column = UserSortOrder(order_by).value
@@ -263,7 +263,7 @@ class DataStore(
sql_base = f"""
FROM users as u
- LEFT JOIN profiles AS p ON u.name = p.full_user_id
+ LEFT JOIN profiles AS p ON u.name = '@' || p.user_id || ':' || ?
LEFT JOIN erased_users AS eu ON u.name = eu.user_id
{where_clause}
"""
diff --git a/synapse/storage/databases/main/filtering.py b/synapse/storage/databases/main/filtering.py
index 75f7fe8756..fff417f9e3 100644
--- a/synapse/storage/databases/main/filtering.py
+++ b/synapse/storage/databases/main/filtering.py
@@ -188,13 +188,14 @@ class FilteringWorkerStore(SQLBaseStore):
filter_id = max_id + 1
sql = (
- "INSERT INTO user_filters (full_user_id, filter_id, filter_json)"
- "VALUES(?, ?, ?)"
+ "INSERT INTO user_filters (full_user_id, user_id, filter_id, filter_json)"
+ "VALUES(?, ?, ?, ?)"
)
txn.execute(
sql,
(
user_id.to_string(),
+ user_id.localpart,
filter_id,
bytearray(def_json),
),
diff --git a/synapse/storage/databases/main/profile.py b/synapse/storage/databases/main/profile.py
index 660a5507b7..3ba9cc8853 100644
--- a/synapse/storage/databases/main/profile.py
+++ b/synapse/storage/databases/main/profile.py
@@ -173,9 +173,10 @@ class ProfileWorkerStore(SQLBaseStore):
)
async def create_profile(self, user_id: UserID) -> None:
+ user_localpart = user_id.localpart
await self.db_pool.simple_insert(
table="profiles",
- values={"full_user_id": user_id.to_string()},
+ values={"user_id": user_localpart, "full_user_id": user_id.to_string()},
desc="create_profile",
)
@@ -190,11 +191,13 @@ class ProfileWorkerStore(SQLBaseStore):
new_displayname: The new display name. If this is None, the user's display
name is removed.
"""
+ user_localpart = user_id.localpart
await self.db_pool.simple_upsert(
table="profiles",
- keyvalues={"full_user_id": user_id.to_string()},
+ keyvalues={"user_id": user_localpart},
values={
"displayname": new_displayname,
+ "full_user_id": user_id.to_string(),
},
desc="set_profile_displayname",
)
@@ -210,10 +213,11 @@ class ProfileWorkerStore(SQLBaseStore):
new_avatar_url: The new avatar URL. If this is None, the user's avatar is
removed.
"""
+ user_localpart = user_id.localpart
await self.db_pool.simple_upsert(
table="profiles",
- keyvalues={"full_user_id": user_id.to_string()},
- values={"avatar_url": new_avatar_url},
+ keyvalues={"user_id": user_localpart},
+ values={"avatar_url": new_avatar_url, "full_user_id": user_id.to_string()},
desc="set_profile_avatar_url",
)
|