From 4baf88b0cf0410467a0f2222395345fe83e4ab25 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Thu, 5 Feb 2026 23:59:20 +0100 Subject: [PATCH] Enhance SQL query for character region filtering: Updated the query to use a recursive common table expression (CTE) for retrieving region IDs, allowing for more comprehensive region hierarchy handling. This change improves the accuracy of character selection based on regional relationships while maintaining existing filtering criteria. --- YpDaemon/src/worker/sql.rs | 10 +++++++++- src/worker/sql.rs | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/YpDaemon/src/worker/sql.rs b/YpDaemon/src/worker/sql.rs index 5a33d8f..3627240 100644 --- a/YpDaemon/src/worker/sql.rs +++ b/YpDaemon/src/worker/sql.rs @@ -884,7 +884,15 @@ pub const QUERY_PROCESS_EXPIRED_AND_FILL: &str = r#" ) AS rn FROM needed_to_fill AS rtf JOIN falukant_data.character AS ch - ON ch.region_id = rtf.region_id + ON ch.region_id IN ( + WITH RECURSIVE region_tree AS ( + SELECT id FROM falukant_data.region WHERE id = rtf.region_id + UNION ALL + SELECT r2.id FROM falukant_data.region r2 + JOIN region_tree rt ON r2.parent_id = rt.id + ) + SELECT id FROM region_tree + ) AND ch.user_id IS NULL AND ch.birthdate <= NOW() - INTERVAL '21 days' AND ch.title_of_nobility IN ( diff --git a/src/worker/sql.rs b/src/worker/sql.rs index ed74338..30f8196 100644 --- a/src/worker/sql.rs +++ b/src/worker/sql.rs @@ -883,7 +883,15 @@ pub const QUERY_PROCESS_EXPIRED_AND_FILL: &str = r#" ) AS rn FROM needed_to_fill AS rtf JOIN falukant_data.character AS ch - ON ch.region_id = rtf.region_id + ON ch.region_id IN ( + WITH RECURSIVE region_tree AS ( + SELECT id FROM falukant_data.region WHERE id = rtf.region_id + UNION ALL + SELECT r2.id FROM falukant_data.region r2 + JOIN region_tree rt ON r2.parent_id = rt.id + ) + SELECT id FROM region_tree + ) AND ch.user_id IS NULL AND ch.birthdate <= NOW() - INTERVAL '21 days' AND ch.title_of_nobility IN (