fix repo id handling and PostgreSQL Query Ordering
Patch 1: PostgreSQL Query Ordering Fixed GetJobList() to return jobs ordered by job_repo_id Added JOIN with job_repo_map table to ensure proper ordering This ensures slice indices match the stored repository IDs Patch 2: Updated Comments Removed the TODO comment about hacky job IDing Added explanation that ordering is now consistent Patch 3: Added Validation Added runtime validation to catch ID mismatches Logs warnings/errors if slice index doesn't match expected job_repo_id Helps debug issues in different state implementations
This commit is contained in:
@@ -385,8 +385,11 @@ func (s *PGState) GetJobList(sessionId int) ([]queue.AnalyzeJob, error) {
|
||||
ctx := context.Background()
|
||||
|
||||
rows, err := s.pool.Query(ctx, `
|
||||
SELECT payload FROM analyze_jobs
|
||||
WHERE session_id = $1
|
||||
SELECT aj.payload FROM analyze_jobs aj
|
||||
JOIN job_repo_map jrm ON aj.session_id = jrm.session_id
|
||||
AND aj.owner = jrm.owner AND aj.repo = jrm.repo
|
||||
WHERE aj.session_id = $1
|
||||
ORDER BY jrm.job_repo_id
|
||||
`, sessionId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user