Sort (cost=3532.35..3533.04 rows=278 width=65) |
Sort Key: w.start_at |
-> Append (cost=130.32..3518.28 rows=278 width=65) |
-> Nested Loop Left Join (cost=130.32..1543.23 rows=1 width=307) |
Join Filter: (wlso.id = w.scenario_option_id) |
-> Bitmap Heap Scan on tbl_work_logs w (cost=130.32..1541.36 rows=1 width=32) |
Recheck Cond: ((created_by = ANY ('{1000,1001,1004,1004,1005,1011,1013,1015,1017,1022,1023,5016,5064,5085,5087,5248,5250,5252,5295,5296,5300,5311,5329,5332,5360,5388,5404,5420,5440,5445,5446}'::integer[])) AND (created_by = 1004)) |
Filter: ((start_at IS NOT NULL) AND (end_at IS NOT NULL) AND (NOT is_draft) AND (((start_at >= '2025-07-13 00:00:00+08'::timestamp with time zone) AND (end_at < '2025-07-13 23:59:59+08'::timestamp with time zone)) OR ((start_at <= '2025-07-13 00:00:00+08'::timestamp with time zone) AND (end_at > '2025-07-13 00:00:00+08'::timestamp with time zone)) OR ((start_at <= '2025-07-13 23:59:59+08'::timestamp with time zone) AND (end_at > '2025-07-13 23:59:59+08'::timestamp with time zone)))) |
-> Bitmap Index Scan on tbl_work_logs_created_by_idx (cost=0.00..130.32 rows=1322 width=0) |
Index Cond: ((created_by = ANY ('{1000,1001,1004,1004,1005,1011,1013,1015,1017,1022,1023,5016,5064,5085,5087,5248,5250,5252,5295,5296,5300,5311,5329,5332,5360,5388,5404,5420,5440,5445,5446}'::integer[])) AND (created_by = 1004)) |
-> Seq Scan on tbl_work_log_scenario_options wlso (cost=0.00..1.39 rows=39 width=278) |
-> Result (cost=110.20..1975.04 rows=277 width=65) |
-> Append (cost=110.20..1972.27 rows=277 width=65) |
-> Bitmap Heap Scan on tbl_schedules (cost=110.20..643.00 rows=270 width=110) |
Recheck Cond: ((created_by = ANY ('{1004,1004,1001,5446,5087,1015,1023,5064,5440,5360,1022,5311,5248,1000,5420,5445,5388,5404,5252,1013,5300,5250,5296,1005,1017,5085,5332,1011,5329,5016,5295}'::integer[])) AND (created_by = 1004)) |
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-13 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-13 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-13 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-13 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-13 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-13 23:59:59+08'::timestamp with time zone)))) |
-> Bitmap Index Scan on tbl_schedules_created_by_idx (cost=0.00..110.13 rows=940 width=0) |
Index Cond: ((created_by = ANY ('{1004,1004,1001,5446,5087,1015,1023,5064,5440,5360,1022,5311,5248,1000,5420,5445,5388,5404,5252,1013,5300,5250,5296,1005,1017,5085,5332,1011,5329,5016,5295}'::integer[])) AND (created_by = 1004)) |
-> Subquery Scan on "*SELECT* 3" (cost=0.00..1326.56 rows=7 width=65) |
-> Seq Scan on tbl_calendars c (cost=0.00..1326.49 rows=7 width=78) |
Filter: ((start_at IS NOT NULL) AND (end_at IS NOT NULL) AND (created_by = 1004) AND (((start_at >= '2025-07-13 00:00:00+08'::timestamp with time zone) AND (end_at < '2025-07-13 23:59:59+08'::timestamp with time zone)) OR ((start_at <= '2025-07-13 00:00:00+08'::timestamp with time zone) AND (end_at > '2025-07-13 00:00:00+08'::timestamp with time zone)) OR ((start_at <= '2025-07-13 23:59:59+08'::timestamp with time zone) AND (end_at > '2025-07-13 23:59:59+08'::timestamp with time zone))) AND (created_by = ANY ('{1004,1004,1001,5446,5087,1015,1023,5064,5440,5360,1022,5311,5248,1000,5420,5445,5388,5404,5252,1013,5300,5250,5296,1005,1017,5085,5332,1011,5329,5016,5295}'::integer[]))) |