Filter build associations by partition_id
What does this MR do and why?
Ref: #423054 (closed)
What does this MR do and why?
Following up !138027 (merged)
This MR allows to make sure we always fetch a given build record in the proper partition where the data is in by including partition_id
in the where clause for the following models:
This will allow us to take advantage of partition pruning and select the right partition automatically without scanning all of them.
Example of updated query
SELECT p_ci_builds.*
FROM p_ci_builds
INNER JOIN ci_sources_pipelines ON p_ci_builds.id = ci_sources_pipelines.source_job_id
WHERE ci_sources_pipelines.pipeline_id = 561
+ AND p_ci_builds.partition_id = 100
LIMIT 1
SELECT p_ci_builds.*
FROM p_ci_builds
INNER JOIN ci_sources_pipelines ON p_ci_builds.id = ci_sources_pipelines.source_job_id
WHERE p_ci_builds.type = 'Ci::Bridge'
AND ci_sources_pipelines.pipeline_id = 561
+ AND p_ci_builds.partition_id = 100
LIMIT 1
-
I have evaluated the MR acceptance checklist for this MR.