Merge pull request #17159 from sihyeonn/perf/sh-prompts

perf: fix N+1 query issue in get_prompts method
This commit is contained in:
Tim Jaeryang Baek 2025-09-03 13:26:29 +04:00 committed by GitHub
commit 308f4d6b26
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -103,10 +103,16 @@ class PromptsTable:
def get_prompts(self) -> list[PromptUserResponse]:
with get_db() as db:
prompts = []
all_prompts = db.query(Prompt).order_by(Prompt.timestamp.desc()).all()
for prompt in db.query(Prompt).order_by(Prompt.timestamp.desc()).all():
user = Users.get_user_by_id(prompt.user_id)
user_ids = list(set(prompt.user_id for prompt in all_prompts))
users = Users.get_users_by_user_ids(user_ids) if user_ids else []
users_dict = {user.id: user for user in users}
prompts = []
for prompt in all_prompts:
user = users_dict.get(prompt.user_id)
prompts.append(
PromptUserResponse.model_validate(
{