@@ -323,24 +323,16 @@ WITH locked_workflow_concurrency_slots AS (
323323 ORDER BY strategy_id, workflow_version_id, workflow_run_id
324324 FOR UPDATE
325325), eligible_running_slots AS (
326- SELECT wsc. *
326+ SELECT *
327327 FROM (
328- SELECT DISTINCT key
328+ SELECT * ,
329+ ROW_NUMBER() OVER (PARTITION BY key ORDER BY sort_id DESC ) as rn
329330 FROM locked_workflow_concurrency_slots
330331 WHERE
331332 tenant_id = @tenantId::uuid
332333 AND strategy_id = @strategyId::bigint
333- ) distinct_keys
334- JOIN LATERAL (
335- SELECT *
336- FROM locked_workflow_concurrency_slots wcs_all
337- WHERE
338- wcs_all .key = distinct_keys .key
339- AND wcs_all .tenant_id = @tenantId::uuid
340- AND wcs_all .strategy_id = @strategyId::bigint
341- ORDER BY wcs_all .sort_id DESC
342- LIMIT @maxRuns::int
343- ) wsc ON true
334+ ) ranked
335+ WHERE rn <= @maxRuns::int
344336), slots_to_run AS (
345337 SELECT
346338 *
@@ -565,24 +557,16 @@ WITH locked_workflow_concurrency_slots AS (
565557 ORDER BY strategy_id, workflow_version_id, workflow_run_id
566558 FOR UPDATE
567559), eligible_running_slots AS (
568- SELECT wsc. *
560+ SELECT *
569561 FROM (
570- SELECT DISTINCT key
562+ SELECT * ,
563+ ROW_NUMBER() OVER (PARTITION BY key ORDER BY sort_id ASC ) as rn
571564 FROM locked_workflow_concurrency_slots
572565 WHERE
573566 tenant_id = @tenantId::uuid
574567 AND strategy_id = @strategyId::bigint
575- ) distinct_keys
576- JOIN LATERAL (
577- SELECT *
578- FROM locked_workflow_concurrency_slots wcs_all
579- WHERE
580- wcs_all .key = distinct_keys .key
581- AND wcs_all .tenant_id = @tenantId::uuid
582- AND wcs_all .strategy_id = @strategyId::bigint
583- ORDER BY wcs_all .sort_id ASC
584- LIMIT @maxRuns::int
585- ) wsc ON true
568+ ) ranked
569+ WHERE rn <= @maxRuns::int
586570), slots_to_run AS (
587571 SELECT
588572 *
0 commit comments