The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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