| Aggregate (cost=1444.28..1444.29 rows=1 width=8) |
| -> Sort (cost=1444.22..1444.23 rows=4 width=65) |
| Sort Key: w.start_at |
| -> Nested Loop (cost=25.55..1444.18 rows=4 width=65) |
| -> Seq Scan on tbl_users u (cost=0.00..8.16 rows=1 width=4) |
| Filter: ((id = 1015) AND (department_id = 2)) |
| -> Append (cost=25.55..1435.94 rows=4 width=65) |
| -> Hash Right Join (cost=25.55..27.10 rows=1 width=49) |
| Hash Cond: (wlso.id = w.scenario_option_id) |
| -> Seq Scan on tbl_work_log_scenario_options wlso (cost=0.00..1.39 rows=39 width=20) |
| -> Hash (cost=25.54..25.54 rows=1 width=32) |
| -> Index Scan using tbl_work_logs_created_by_idx on tbl_work_logs w (cost=0.29..25.54 rows=1 width=32) |
| Index Cond: ((created_by = ANY ('{1015,1015,1022,1023,5248}'::integer[])) AND (created_by = 1015)) |
| Filter: ((NOT is_draft) AND (((start_at >= '2026-07-15 00:00:00+08'::timestamp with time zone) AND (end_at < '2026-07-15 23:59:59+08'::timestamp with time zone)) OR ((start_at <= '2026-07-15 00:00:00+08'::timestamp with time zone) AND (end_at > '2026-07-15 00:00:00+08'::timestamp with time zone)) OR ((start_at <= '2026-07-15 23:59:59+08'::timestamp with time zone) AND (end_at > '2026-07-15 23:59:59+08'::timestamp with time zone))) AND (((start_at >= '2026-07-15 00:00:00+08'::timestamp with time zone) AND (end_at < '2026-07-15 23:59:59+08'::timestamp with time zone)) OR ((start_at <= '2026-07-15 00:00:00+08'::timestamp with time zone) AND (end_at > '2026-07-15 00:00:00+08'::timestamp with time zone)) OR ((start_at <= '2026-07-15 23:59:59+08'::timestamp with time zone) AND (end_at > '2026-07-15 23:59:59+08'::timestamp with time zone)))) |
| -> Result (cost=141.85..1408.83 rows=3 width=65) |
| -> Append (cost=141.85..1408.80 rows=3 width=65) |
| -> Hash Right Join (cost=141.85..154.59 rows=2 width=109) |
| Hash Cond: (ccr.schedule_id = tbl_schedules.id) |
| Filter: (((tbl_schedules.is_public = 1) AND (tbl_schedules.created_by <> 1015)) OR (tbl_schedules.created_by = 1015) OR (ccr.user_id = 1015)) |
| -> Seq Scan on tbl_schedule_carbon_copy_rels ccr (cost=0.00..10.89 rows=689 width=8) |
| -> Hash (cost=141.83..141.83 rows=2 width=141) |
| -> Bitmap Heap Scan on tbl_schedules (cost=74.20..141.83 rows=2 width=141) |
| Recheck Cond: ((created_by = ANY ('{1004,1001,5087,1015,1015,1023,5360,1022,5311,5311,5248,5476,5500,5252,1013,5300,1005,5499,5332,1011,5295}'::integer[])) AND (created_by = 1015)) |
| 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 >= '2026-07-15 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 < '2026-07-15 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 <= '2026-07-15 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 > '2026-07-15 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 <= '2026-07-15 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 > '2026-07-15 23:59:59+08'::timestamp with time zone))) 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 >= '2026-07-15 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 < '2026-07-15 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 <= '2026-07-15 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 > '2026-07-15 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 <= '2026-07-15 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 > '2026-07-15 23:59:59+08'::timestamp with time zone)))) |
| -> Bitmap Index Scan on tbl_schedules_created_by_idx (cost=0.00..74.19 rows=19 width=0) |
| Index Cond: ((created_by = ANY ('{1004,1001,5087,1015,1015,1023,5360,1022,5311,5311,5248,5476,5500,5252,1013,5300,1005,5499,5332,1011,5295}'::integer[])) AND (created_by = 1015)) |
| -> Subquery Scan on "*SELECT* 3" (cost=0.00..1254.19 rows=1 width=65) |
| -> Seq Scan on tbl_calendars c (cost=0.00..1254.18 rows=1 width=77) |
| Filter: ((created_by = 1015) AND (created_by = ANY ('{1015,1015,1023,1022,5248}'::integer[])) AND (((is_public = 1) AND (created_by <> 1015)) OR (created_by = 1015)) AND (((start_at >= '2026-07-15 00:00:00+08'::timestamp with time zone) AND (end_at < '2026-07-15 23:59:59+08'::timestamp with time zone)) OR ((start_at <= '2026-07-15 00:00:00+08'::timestamp with time zone) AND (end_at > '2026-07-15 00:00:00+08'::timestamp with time zone)) OR ((start_at <= '2026-07-15 23:59:59+08'::timestamp with time zone) AND (end_at > '2026-07-15 23:59:59+08'::timestamp with time zone))) AND (((start_at >= '2026-07-15 00:00:00+08'::timestamp with time zone) AND (end_at < '2026-07-15 23:59:59+08'::timestamp with time zone)) OR ((start_at <= '2026-07-15 00:00:00+08'::timestamp with time zone) AND (end_at > '2026-07-15 00:00:00+08'::timestamp with time zone)) OR ((start_at <= '2026-07-15 23:59:59+08'::timestamp with time zone) AND (end_at > '2026-07-15 23:59:59+08'::timestamp with time zone)))) |