Sort (cost=19735.07..19735.08 rows=1 width=108) (actual time=984.815..984.898 rows=705 loops=1)
Sort Key: gp.idx_gabinetu, (COALESCE(z.godz_otwarcia, gp.godz_otwarcia))
Sort Method: quicksort Memory: 124kB
-> Nested Loop Left Join (cost=14296.97..19735.06 rows=1 width=108) (actual time=625.283..983.437 rows=705 loops=1)
Join Filter: (($1 + s.s) <= COALESCE(gu.data_do, '3000-01-01'::date))
Filter: (((CASE WHEN (z.idx_gdz_pracy IS NULL) THEN gp.czy_ukryty ELSE z.czy_ukryty END)::"char" = 'N'::"char") OR ps_chkupr(246) OR (NOT (gu.idx_pracownika IS NULL)))
-> Hash Left Join (cost=14296.72..19733.98 rows=1 width=114) (actual time=624.938..960.508 rows=705 loops=1)
Hash Cond: ((gp.idx_gdz_pracy = z.idx_gdz_pracy_wyjsciowy) AND (($1 + s.s) = z.wazny_od))
Filter: ((((CASE WHEN (z.idx_gdz_pracy IS NULL) THEN gp.czy_lokalny ELSE z.czy_lokalny END)::"char" = 'N'::"char") OR (g.idx_placowki = ps_akt_placowka())) AND ((SubPlan 1) = $5))
-> Merge Join (cost=3509.52..3900.07 rows=1192 width=74) (actual time=490.880..654.251 rows=14703 loops=1)
Merge Cond: ((date_part('dow'::text, (($1 + s.s))::timestamp without time zone)) = ((gp.dzien_tygodnia)::double precision))
Join Filter: ((($1 + s.s) >= gp.wazny_od) AND (($1 + s.s) <= gp.wazny_do))
-> Sort (cost=64.83..67.33 rows=1000 width=4) (actual time=0.056..0.059 rows=11 loops=1)
Sort Key: (date_part('dow'::text, (($1 + s.s))::timestamp without time zone))
Sort Method: quicksort Memory: 25kB
-> Function Scan on generate_series s (cost=0.00..15.00 rows=1000 width=4) (actual time=0.032..0.041 rows=11 loops=1)
-> Sort (cost=3444.69..3450.06 rows=2146 width=70) (actual time=490.804..561.202 rows=173693 loops=1)
Sort Key: ((gp.dzien_tygodnia)::double precision)
Sort Method: external sort Disk: 11312kB
-> Nested Loop (cost=46.42..3325.94 rows=2146 width=70) (actual time=0.461..198.491 rows=113394 loops=1)
-> Hash Join (cost=46.42..129.38 rows=19 width=12) (actual time=0.437..3.798 rows=1252 loops=1)
Hash Cond: (g.idx_placowki = p.idx_placowki)
-> Seq Scan on s_gabinety g (cost=0.00..82.63 rows=38 width=8) (actual time=0.009..1.747 rows=2443 loops=1)
Filter: ((idx_placowki = $3) OR ($3 = 0))
-> Hash (cost=46.19..46.19 rows=19 width=4) (actual time=0.416..0.416 rows=134 loops=1)
-> Seq Scan on s_lokalizacje_placowki p (cost=0.00..46.19 rows=19 width=4) (actual time=0.008..0.342 rows=134 loops=1)
Filter: ((idx_lokalizacji = $5) OR ($5 = 0))
-> Index Scan using s_gabinety_godziny_pracy_idx on s_gabinety_godziny_pracy gp (cost=0.00..166.83 rows=113 width=62) (actual time=0.007..0.107 rows=91 loops=1252)
Index Cond: (gp.idx_gabinetu = g.idx_gabinetu)
Filter: (gp.idx_gdz_pracy_wyjsciowy IS NULL)
-> Hash (cost=5637.28..5637.28 rows=207928 width=50) (actual time=122.250..122.250 rows=2778 loops=1)
-> Seq Scan on s_gabinety_godziny_pracy z (cost=0.00..5637.28 rows=207928 width=50) (actual time=0.014..94.524 rows=207931 loops=1)
SubPlan 1
-> Aggregate (cost=36.21..36.22 rows=1 width=0) (actual time=0.005..0.005 rows=1 loops=11341)
-> Bitmap Heap Scan on s_gabinety_godziny_pracy_uslugi gpu (cost=33.18..36.21 rows=1 width=0) (actual time=0.004..0.004 rows=0 loops=11341)
Recheck Cond: ((idx_gdz_pracy = COALESCE($0, $1)) AND (idx_wariantu_suslugi = ANY ($4)))
-> Bitmap Index Scan on s_gabinety_godziny_pracy_uslugi_pkey (cost=0.00..33.18 rows=1 width=0) (actual time=0.003..0.003 rows=0 loops=11341)
Index Cond: ((idx_gdz_pracy = COALESCE($0, $1)) AND (idx_wariantu_suslugi = ANY ($4)))
-> Index Scan using s_lokalizacje_placowki_upr_graf_ukr_pkey on s_lokalizacje_placowki_upr_graf_ukr gu (cost=0.25..0.81 rows=1 width=16) (actual time=0.000..0.000 rows=0 loops=705)
Index Cond: ((gu.idx_placowki = p.idx_placowki) AND (gu.idx_pracownika = ps_akt_user()) AND (($1 + s.s) >= gu.data_od))
Total runtime: 987.935 ms