From 614df15719beb19e86aac4c09b06e890dfccacef Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Thu, 7 Aug 2025 15:31:47 +0000 Subject: [PATCH] fix: improve result stream query efficiency --- ...a90f1edf49ac96fba6c391c4d0054a618b861464ee37239f1f1e0.json | 3 +-- ...17869578c4504ff3153c43903f929ae5d62fbba12610f89c36d55.json | 2 +- ...604ba72ba4800b62a72de0a9de0d58ef8c28dd709adf3be021597.json | 3 +-- ...1e7d647cf45e68b69395717433eb56fdd994140598a818ec3273.json} | 4 ++-- backend/windmill-api/src/jobs.rs | 2 +- 5 files changed, 6 insertions(+), 8 deletions(-) rename backend/.sqlx/{query-9f5b677a02690d3e4b4a5f5e141c7107077bbe90423102b5469e219f2a8b9293.json => query-f12edc63b7491e7d647cf45e68b69395717433eb56fdd994140598a818ec3273.json} (78%) diff --git a/backend/.sqlx/query-4aaab98ebdaa90f1edf49ac96fba6c391c4d0054a618b861464ee37239f1f1e0.json b/backend/.sqlx/query-4aaab98ebdaa90f1edf49ac96fba6c391c4d0054a618b861464ee37239f1f1e0.json index 91512257cd..65fa6cc9eb 100644 --- a/backend/.sqlx/query-4aaab98ebdaa90f1edf49ac96fba6c391c4d0054a618b861464ee37239f1f1e0.json +++ b/backend/.sqlx/query-4aaab98ebdaa90f1edf49ac96fba6c391c4d0054a618b861464ee37239f1f1e0.json @@ -223,8 +223,7 @@ "ui", "postgres", "sqs", - "gcp", - "mqtt" + "gcp" ] } } diff --git a/backend/.sqlx/query-5a219a2532517869578c4504ff3153c43903f929ae5d62fbba12610f89c36d55.json b/backend/.sqlx/query-5a219a2532517869578c4504ff3153c43903f929ae5d62fbba12610f89c36d55.json index 36ddb8ab9f..713ccb9dd3 100644 --- a/backend/.sqlx/query-5a219a2532517869578c4504ff3153c43903f929ae5d62fbba12610f89c36d55.json +++ b/backend/.sqlx/query-5a219a2532517869578c4504ff3153c43903f929ae5d62fbba12610f89c36d55.json @@ -15,7 +15,7 @@ ] }, "nullable": [ - true + null ] }, "hash": "5a219a2532517869578c4504ff3153c43903f929ae5d62fbba12610f89c36d55" diff --git a/backend/.sqlx/query-acfe583fe17604ba72ba4800b62a72de0a9de0d58ef8c28dd709adf3be021597.json b/backend/.sqlx/query-acfe583fe17604ba72ba4800b62a72de0a9de0d58ef8c28dd709adf3be021597.json index 7d7eef1cab..a380288379 100644 --- a/backend/.sqlx/query-acfe583fe17604ba72ba4800b62a72de0a9de0d58ef8c28dd709adf3be021597.json +++ b/backend/.sqlx/query-acfe583fe17604ba72ba4800b62a72de0a9de0d58ef8c28dd709adf3be021597.json @@ -115,8 +115,7 @@ "ui", "postgres", "sqs", - "gcp", - "mqtt" + "gcp" ] } } diff --git a/backend/.sqlx/query-9f5b677a02690d3e4b4a5f5e141c7107077bbe90423102b5469e219f2a8b9293.json b/backend/.sqlx/query-f12edc63b7491e7d647cf45e68b69395717433eb56fdd994140598a818ec3273.json similarity index 78% rename from backend/.sqlx/query-9f5b677a02690d3e4b4a5f5e141c7107077bbe90423102b5469e219f2a8b9293.json rename to backend/.sqlx/query-f12edc63b7491e7d647cf45e68b69395717433eb56fdd994140598a818ec3273.json index f9a1de974a..f08bc4d100 100644 --- a/backend/.sqlx/query-9f5b677a02690d3e4b4a5f5e141c7107077bbe90423102b5469e219f2a8b9293.json +++ b/backend/.sqlx/query-f12edc63b7491e7d647cf45e68b69395717433eb56fdd994140598a818ec3273.json @@ -1,6 +1,6 @@ { "db_name": "PostgreSQL", - "query": "SELECT result as \"result: sqlx::types::Json>\", SUBSTR(rs.stream, $3) AS \"result_stream: Option\", CHAR_LENGTH(rs.stream) + 1 AS stream_offset\n FROM v2_job_completed FULL OUTER JOIN job_result_stream rs ON rs.job_id = v2_job_completed.id WHERE (v2_job_completed.id = $2 AND v2_job_completed.workspace_id = $1 OR rs.workspace_id = $1)", + "query": "SELECT result as \"result: sqlx::types::Json>\", SUBSTR(rs.stream, $3) AS \"result_stream: Option\", CHAR_LENGTH(rs.stream) + 1 AS stream_offset\n FROM v2_job_completed FULL OUTER JOIN job_result_stream rs ON rs.job_id = v2_job_completed.id WHERE ((v2_job_completed.id = $2 AND v2_job_completed.workspace_id = $1) OR (rs.workspace_id = $1 AND rs.job_id = $2))", "describe": { "columns": [ { @@ -32,5 +32,5 @@ null ] }, - "hash": "9f5b677a02690d3e4b4a5f5e141c7107077bbe90423102b5469e219f2a8b9293" + "hash": "f12edc63b7491e7d647cf45e68b69395717433eb56fdd994140598a818ec3273" } diff --git a/backend/windmill-api/src/jobs.rs b/backend/windmill-api/src/jobs.rs index 4bb89e0260..4ec56389e9 100644 --- a/backend/windmill-api/src/jobs.rs +++ b/backend/windmill-api/src/jobs.rs @@ -6416,7 +6416,7 @@ async fn get_job_update_data( } else { let q = sqlx::query!( "SELECT result as \"result: sqlx::types::Json>\", SUBSTR(rs.stream, $3) AS \"result_stream: Option\", CHAR_LENGTH(rs.stream) + 1 AS stream_offset - FROM v2_job_completed FULL OUTER JOIN job_result_stream rs ON rs.job_id = v2_job_completed.id WHERE (v2_job_completed.id = $2 AND v2_job_completed.workspace_id = $1 OR rs.workspace_id = $1)", + FROM v2_job_completed FULL OUTER JOIN job_result_stream rs ON rs.job_id = v2_job_completed.id WHERE ((v2_job_completed.id = $2 AND v2_job_completed.workspace_id = $1) OR (rs.workspace_id = $1 AND rs.job_id = $2))", w_id, job_id, stream_offset.unwrap_or(0),