QUERY PLAN
Sort (cost=2333.68..2333.79 rows=44 width=65)
Sort Key: w.start_at
-> Append (cost=24.74..2332.04 rows=44 width=65)
-> Nested Loop Left Join (cost=24.74..1232.69 rows=1 width=307)
Join Filter: (wlso.id = w.scenario_option_id)
-> Bitmap Heap Scan on tbl_work_logs w (cost=24.74..1230.81 rows=1 width=32)
Recheck Cond: ((created_by = ANY ('{5300,5311}'::integer[])) AND (created_by = 5300))
Filter: ((start_at IS NOT NULL) AND (end_at IS NOT NULL) AND (NOT is_draft) AND (((start_at >= '2025-07-25 00:00:00+08'::timestamp with time zone) AND (end_at < '2025-07-25 23:59:59+08'::timestamp with time zone)) OR ((start_at <= '2025-07-25 00:00:00+08'::timestamp with time zone) AND (end_at > '2025-07-25 00:00:00+08'::timestamp with time zone)) OR ((start_at <= '2025-07-25 23:59:59+08'::timestamp with time zone) AND (end_at > '2025-07-25 23:59:59+08'::timestamp with time zone))))
-> Bitmap Index Scan on tbl_work_logs_created_by_idx (cost=0.00..24.74 rows=816 width=0)
Index Cond: ((created_by = ANY ('{5300,5311}'::integer[])) AND (created_by = 5300))
-> Seq Scan on tbl_work_log_scenario_options wlso (cost=0.00..1.39 rows=39 width=278)
-> Result (cost=14.34..1099.35 rows=43 width=65)
-> Append (cost=14.34..1098.92 rows=43 width=65)
-> Bitmap Heap Scan on tbl_schedules (cost=14.34..320.53 rows=42 width=110)
Recheck Cond: ((created_by = ANY ('{5311,5300,5300}'::integer[])) AND (created_by = 5300))
Filter: (((start_at IS NOT NULL) OR (end_at IS NOT NULL)) AND (((CASE WHEN (start_at IS NULL) THEN CASE WHEN (end_at < now()) THEN CASE WHEN is_complete THEN created_at ELSE end_at END ELSE CASE WHEN is_complete THEN created_at ELSE now() END END ELSE start_at END >= '2025-07-25 00:00:00+08'::timestamp with time zone) AND (CASE WHEN (end_at IS NULL) THEN CASE WHEN (start_at > now()) THEN start_at ELSE CASE WHEN is_complete THEN complete_at ELSE now() END END ELSE CASE WHEN ((start_at IS NULL) AND (end_at < now())) THEN CASE WHEN is_complete THEN complete_at ELSE now() END ELSE end_at END END < '2025-07-25 23:59:59+08'::timestamp with time zone)) OR ((CASE WHEN (start_at IS NULL) THEN CASE WHEN (end_at < now()) THEN CASE WHEN is_complete THEN created_at ELSE end_at END ELSE CASE WHEN is_complete THEN created_at ELSE now() END END ELSE start_at END <= '2025-07-25 00:00:00+08'::timestamp with time zone) AND (CASE WHEN (end_at IS NULL) THEN CASE WHEN (start_at > now()) THEN start_at ELSE CASE WHEN is_complete THEN complete_at ELSE now() END END ELSE CASE WHEN ((start_at IS NULL) AND (end_at < now())) THEN CASE WHEN is_complete THEN complete_at ELSE now() END ELSE end_at END END > '2025-07-25 00:00:00+08'::timestamp with time zone)) OR ((CASE WHEN (start_at IS NULL) THEN CASE WHEN (end_at < now()) THEN CASE WHEN is_complete THEN created_at ELSE end_at END ELSE CASE WHEN is_complete THEN created_at ELSE now() END END ELSE start_at END <= '2025-07-25 23:59:59+08'::timestamp with time zone) AND (CASE WHEN (end_at IS NULL) THEN CASE WHEN (start_at > now()) THEN start_at ELSE CASE WHEN is_complete THEN complete_at ELSE now() END END ELSE CASE WHEN ((start_at IS NULL) AND (end_at < now())) THEN CASE WHEN is_complete THEN complete_at ELSE now() END ELSE end_at END END > '2025-07-25 23:59:59+08'::timestamp with time zone))))
-> Bitmap Index Scan on tbl_schedules_created_by_idx (cost=0.00..14.33 rows=148 width=0)
Index Cond: ((created_by = ANY ('{5311,5300,5300}'::integer[])) AND (created_by = 5300))
-> Subquery Scan on "*SELECT* 3" (cost=0.00..777.97 rows=1 width=65)
-> Seq Scan on tbl_calendars c (cost=0.00..777.96 rows=1 width=78)
Filter: ((start_at IS NOT NULL) AND (end_at IS NOT NULL) AND (created_by = ANY ('{5311,5300}'::integer[])) AND (created_by = 5300) AND (((start_at >= '2025-07-25 00:00:00+08'::timestamp with time zone) AND (end_at < '2025-07-25 23:59:59+08'::timestamp with time zone)) OR ((start_at <= '2025-07-25 00:00:00+08'::timestamp with time zone) AND (end_at > '2025-07-25 00:00:00+08'::timestamp with time zone)) OR ((start_at <= '2025-07-25 23:59:59+08'::timestamp with time zone) AND (end_at > '2025-07-25 23:59:59+08'::timestamp with time zone))))