Skip to content
This repository was archived by the owner on Mar 26, 2024. It is now read-only.

Commit cdbe9e1

Browse files
H-ShayFizzadar
authored andcommitted
Actually stop reading from column user_id of tables profiles (matrix-org#15955)
1 parent fbc1d08 commit cdbe9e1

File tree

5 files changed

+12
-12
lines changed

5 files changed

+12
-12
lines changed

changelog.d/15955.misc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Stop reading from column `user_id` of table `profiles`.

synapse/storage/databases/main/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ def get_users_paginate_txn(
198198
txn: LoggingTransaction,
199199
) -> Tuple[List[JsonDict], int]:
200200
filters = []
201-
args = [self.hs.config.server.server_name]
201+
args: list = []
202202

203203
# Set ordering
204204
order_by_column = UserSortOrder(order_by).value
@@ -265,7 +265,7 @@ def get_users_paginate_txn(
265265

266266
sql_base = f"""
267267
FROM users as u
268-
LEFT JOIN profiles AS p ON u.name = '@' || p.user_id || ':' || ?
268+
LEFT JOIN profiles AS p ON u.name = p.full_user_id
269269
LEFT JOIN erased_users AS eu ON u.name = eu.user_id
270270
{where_clause}
271271
"""

synapse/storage/databases/main/stats.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ def get_users_media_usage_paginate_txn(
697697
txn: LoggingTransaction,
698698
) -> Tuple[List[JsonDict], int]:
699699
filters = []
700-
args = [self.hs.config.server.server_name]
700+
args: list = []
701701

702702
if search_term:
703703
filters.append("(lmr.user_id LIKE ? OR displayname LIKE ?)")
@@ -733,7 +733,7 @@ def get_users_media_usage_paginate_txn(
733733

734734
sql_base = """
735735
FROM local_media_repository as lmr
736-
LEFT JOIN profiles AS p ON lmr.user_id = '@' || p.user_id || ':' || ?
736+
LEFT JOIN profiles AS p ON lmr.user_id = p.full_user_id
737737
{}
738738
GROUP BY lmr.user_id, displayname
739739
""".format(

synapse/storage/databases/main/user_directory.py

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -409,23 +409,22 @@ def _populate_user_directory_process_users_txn(
409409
txn, users_to_work_on
410410
)
411411

412-
# Next fetch their profiles. Note that the `user_id` here is the
413-
# *localpart*, and that not all users have profiles.
412+
# Next fetch their profiles. Note that not all users have profiles.
414413
profile_rows = self.db_pool.simple_select_many_txn(
415414
txn,
416415
table="profiles",
417-
column="user_id",
418-
iterable=[get_localpart_from_id(u) for u in users_to_insert],
416+
column="full_user_id",
417+
iterable=list(users_to_insert),
419418
retcols=(
420-
"user_id",
419+
"full_user_id",
421420
"displayname",
422421
"avatar_url",
423422
),
424423
keyvalues={},
425424
)
426425
profiles = {
427-
f"@{row['user_id']}:{self.server_name}": _UserDirProfile(
428-
f"@{row['user_id']}:{self.server_name}",
426+
row["full_user_id"]: _UserDirProfile(
427+
row["full_user_id"],
429428
row["displayname"],
430429
row["avatar_url"],
431430
)

tests/rest/admin/test_user.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1418,7 +1418,7 @@ def test_deactivate_user_erase_true_no_profile(self) -> None:
14181418
# To test deactivation for users without a profile, we delete the profile information for our user.
14191419
self.get_success(
14201420
self.store.db_pool.simple_delete_one(
1421-
table="profiles", keyvalues={"user_id": "user"}
1421+
table="profiles", keyvalues={"full_user_id": "@user:test"}
14221422
)
14231423
)
14241424

0 commit comments

Comments
 (0)