Remove "expires_at" hardcode of SQL
What does this MR do and why?
Related discussion: !113111 (comment 1339690998)
Update a SQL hard code to a dynamic SQL statement.
This hard code causes errors in complex inner join statements. See How to set up and validate locally.
SQL changes
Take DeployToken.expired
as an example
Before ->
SELECT
"deploy_tokens".*
FROM
"deploy_tokens"
WHERE
(
expires_at IS NOT NULL
AND expires_at <= '2023-04-04 07:27:02.906124'
)
After ->
SELECT
"deploy_tokens".*
FROM
"deploy_tokens"
WHERE
"deploy_tokens"."expires_at" IS NOT NULL
AND "deploy_tokens"."expires_at" <= '2023-04-04 07: 26: 08.383978'
Screenshots or screen recordings
No UI changes.
How to set up and validate locally
# bin/rails console
> users = Group.first.users
> PersonalAccessToken.expired.joins(:user).merge(users).count # The old code will report an error
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Edited by Zhiyuan Lu