Execution time: N/A
Planning time: N/A
Triggers: N/A
#1 Group
#2 â”” Sort
#3  └ Hash Join
#4   ├ Hash Join
#5   │├ Hash Join
#6   ││├ Merge Join
#7   │││├ Merge Join
#8   ││││├ Merge Join
#9   │││││├ Merge Join
#10   ││││││├ Merge Join
#11   │││││││├ Index Scan
#12   │││││││└ GroupAggregate
#13   │││││││ └ Sort
#14   │││││││  └ Hash Join
#15   │││││││   ├ Seq Scan
#16   │││││││   └ Hash
#17   │││││││    └ Hash Join
#18   │││││││     ├ Hash Join
#19   │││││││     │├ Hash Join
#20   │││││││     ││├ Hash Join
#21   │││││││     │││├ Hash Join
#22   │││││││     ││││├ Hash Join
#23   │││││││     │││││├ Seq Scan
#24   │││││││     │││││└ Hash
#25   │││││││     │││││ └ Seq Scan
#26   │││││││     ││││└ Hash
#27   │││││││     ││││ └ Seq Scan
#28   │││││││     │││└ Hash
#29   │││││││     │││ └ Subquery Scan
#30   │││││││     │││  └ GroupAggregate
#31   │││││││     │││   └ Sort
#32   │││││││     │││    └ Gather
#33   │││││││     │││     └ Nested Loop
#34   │││││││     │││      ├ Nested Loop Join
#35   │││││││     │││      │├ Nested Loop
#36   │││││││     │││      ││├ Hash Join
#37   │││││││     │││      │││├ Parallel Seq Scan
#38   │││││││     │││      │││└ Hash
#39   │││││││     │││      │││ └ Hash Join
#40   │││││││     │││      │││  ├ Hash Join
#41   │││││││     │││      │││  │├ Hash Join
#42   │││││││     │││      │││  ││├ Seq Scan
#43   │││││││     │││      │││  ││└ Hash
#44   │││││││     │││      │││  ││ └ Seq Scan
#45   │││││││     │││      │││  │└ Hash
#46   │││││││     │││      │││  │ └ Seq Scan
#47   │││││││     │││      │││  └ Hash
#48   │││││││     │││      │││   └ Seq Scan
#49   │││││││     │││      ││└ Index Only Scan
#50   │││││││     │││      │└ Index Scan
#51   │││││││     │││      └ Index Only Scan
#52   │││││││     ││└ Hash
#53   │││││││     ││ └ Seq Scan
#54   │││││││     │└ Hash
#55   │││││││     │ └ Seq Scan
#56   │││││││     └ Hash
#57   │││││││      └ Seq Scan
#58   ││││││└ GroupAggregate
#59   ││││││ └ Sort
#60   ││││││  └ Gather
#61   ││││││   └ Hash Join
#62   ││││││    ├ Parallel Hash Join
#63   ││││││    │├ Parallel Hash Join
#64   ││││││    ││├ Parallel Seq Scan
#65   ││││││    ││└ Parallel Hash
#66   ││││││    ││ └ Parallel Seq Scan
#67   ││││││    │└ Parallel Hash
#68   ││││││    │ └ Parallel Seq Scan
#69   ││││││    └ Hash
#70   ││││││     └ Seq Scan
#71   │││││└ GroupAggregate
#72   │││││ └ Sort
#73   │││││  └ Hash Join
#74   │││││   ├ Seq Scan
#75   │││││   └ Hash
#76   │││││    └ Gather
#77   │││││     └ Parallel Hash Join
#78   │││││      ├ Parallel Hash Join
#79   │││││      │├ Parallel Seq Scan
#80   │││││      │└ Parallel Hash
#81   │││││      │ └ Hash Join
#82   │││││      │  ├ Parallel Hash Join
#83   │││││      │  │├ Parallel Hash Join
#84   │││││      │  ││├ Parallel Seq Scan
#85   │││││      │  ││└ Parallel Hash
#86   │││││      │  ││ └ Parallel Seq Scan
#87   │││││      │  │└ Parallel Hash
#88   │││││      │  │ └ Parallel Seq Scan
#89   │││││      │  └ Hash
#90   │││││      │   └ Seq Scan
#91   │││││      └ Parallel Hash
#92   │││││       └ Parallel Seq Scan
#93   ││││└ Index Scan
#94   │││└ Materialize
#95   │││ └ GroupAggregate
#96   │││  └ Sort
#97   │││   └ Hash Join
#98   │││    ├ Hash Join
#99   │││    │├ Seq Scan
#100   │││    │└ Hash
#101   │││    │ └ Seq Scan
#102   │││    └ Hash
#103   │││     └ Hash Join
#104   │││      ├ Hash Join
#105   │││      │├ Hash Join
#106   │││      ││├ Seq Scan
#107   │││      ││└ Hash
#108   │││      ││ └ Hash Join
#109   │││      ││  ├ Seq Scan
#110   │││      ││  └ Hash
#111   │││      ││   └ Seq Scan
#112   │││      │└ Hash
#113   │││      │ └ Seq Scan
#114   │││      └ Hash
#115   │││       └ Seq Scan
#116   ││└ Hash
#117   ││ └ Hash Join
#118   ││  ├ Hash Join
#119   ││  │├ Hash Join
#120   ││  ││├ Hash Join
#121   ││  │││├ Seq Scan
#122   ││  │││└ Hash
#123   ││  │││ └ Seq Scan
#124   ││  ││└ Hash
#125   ││  ││ └ Seq Scan
#126   ││  │└ Hash
#127   ││  │ └ Seq Scan
#128   ││  └ Hash
#129   ││   └ Seq Scan
#130   │└ Hash
#131   │ └ Subquery Scan
#132   │  └ GroupAggregate
#133   │   └ Sort
#134   │    └ Gather
#135   │     └ Hash Join
#136   │      ├ Parallel Hash Join
#137   │      │├ Nested Loop
#138   │      ││├ Nested Loop
#139   │      │││├ Hash Join
#140   │      ││││├ Parallel Hash Join
#141   │      │││││├ Parallel Seq Scan
#142   │      │││││└ Parallel Hash
#143   │      │││││ └ Parallel Seq Scan
#144   │      ││││└ Hash
#145   │      ││││ └ Seq Scan
#146   │      │││└ Index Scan
#147   │      ││└ Index Scan
#148   │      │└ Parallel Hash
#149   │      │ └ Parallel Seq Scan
#150   │      └ Hash
#151   │       └ Seq Scan
#152   └ Hash
#153    └ Subquery Scan
#154     └ WindowAgg
#155      └ Sort
#156       └ Gather
#157        └ Parallel Hash Join
#158         ├ Parallel Hash Join
#159         │├ Parallel Seq Scan
#160         │└ Parallel Hash
#161         │ └ Parallel Seq Scan
#162         └ Parallel Hash
#163          └ Parallel Hash Join
#164           ├ Merge Join
#165           │├ Parallel Index Scan
#166           │└ Index Scan
#167           └ Parallel Hash
#168            └ Parallel Seq Scan

Group

by r.gid, r.name, ac.name, temp.name, r.length, rrl.recording_links, (array_agg(jsonb_build_array(t.name, rt.count, g.gid))), (array_agg(jsonb_build_array(t_2.name, rgt.count, rg.gid, g_2.gid))), rg.gid, (array_agg(jsonb_build_array(a_1.gid, a_1.begin_date_year, a_1.end_date_year, at_1.name, ag_1.name, ar.name, arl.artist_links))), (array_agg(jsonb_build_array(t_1.name, at_2.count, a_3.gid, g_1.gid))), temp.release_mbid, temp.caa_id, cmb.year

Sort

by r.gid, r.name, ac.name, temp.name, r.length, rrl.recording_links, (array_agg(jsonb_build_array(t.name, rt.count, g.gid))), (array_agg(jsonb_build_array(t_2.name, rgt.count, rg.gid, g_2.gid))), rg.gid, (array_agg(jsonb_build_array(a_1.gid, a_1.begin_date_year, a_1.end_date_year, at_1.name, ag_1.name, ar.name, arl.artist_links))), (array_agg(jsonb_build_array(t_1.name, at_2.count, a_3.gid, g_1.gid))), temp.release_mbid, temp.caa_id, cmb.year

Hash Join

Left join
on r.gid = temp.recording_mbid

Hash Join

Left join
on r.gid = rrl.gid

Hash

Hash Join

on r.artist_credit = ac.id

Hash

Subquery Scan

on temp

Merge Join

Left join

Hash

Subquery Scan

on rrl

WindowAgg

Merge Join

Left join

Materialize

Hash Join

on acn.artist_credit = ac.id

GroupAggregate

by r_6.gid

Sort

by crr_1.recording_mbid, caa.ordering

Merge Join

Left join

Index Scan

on canonical_musicbrainz_data as cmb
using canonical_musicbrainz_data_idx_recording_mbid

GroupAggregate

by r_5.gid, rg.gid

Hash Join

on a.type = at.id

Hash

Sort

by r_6.gid

Gather

Merge Join

Left join

GroupAggregate

by r_4.gid

Sort

by r_5.gid, rg.gid

Hash Join

on a.type = ag.id

Hash

Seq Scan

on artist_credit as ac

Gather

1
0

Parallel Hash Join

Left join
on crr_1.release_mbid = rel_1.gid

Merge Join

Left join

GroupAggregate

by r_3.gid

Sort

by r_4.gid

Hash Join

on crr.release_mbid = rel.gid

Hash Join

on acn.artist = a.id

Hash

Seq Scan

on artist_type as at
1
0

Hash Join

Left join
on la.attribute_type = lat.id
1
0

Parallel Hash Join

Left join
on r_7.gid = crr_1.recording_mbid
1
0

Parallel Hash

Index Scan

on recording as r
using recording_idx_gid

GroupAggregate

by r_1.gid

Sort

by r_3.gid

Hash Join

on r_4.artist_credit = ac_3.id

Hash Join

on r_5.gid = crr.recording_mbid

Hash

Seq Scan

on artist_credit_name as acn

Hash

Seq Scan

on gender as ag
1
0

Parallel Hash Join

Left join
on l_1.id = la.link
1
0

Hash

1
0

Parallel Seq Scan

on recording as r_7
1
0

Parallel Hash

1
0

Parallel Hash Join

Left join
on caa.id = cat.id

Sort

by r_1.gid

Gather

Seq Scan

on recording as r_4

Hash

Seq Scan

on recording as r_5

Hash

Hash Join

Left join
on (t_2.name)::text = (g_2.name)::text

Seq Scan

on artist as a
1
0

Nested Loop

1
0

Parallel Hash

1
0

Seq Scan

on link_attribute_type as lat
1
0

Parallel Seq Scan

on canonical_release_redirect as crr_1
1
0

Merge Join

Left join
1
0

Parallel Hash

Hash Join

on r_1.artist_credit = ac_1.id
1
0

Hash Join

Left join
on (t.name)::text = (g.name)::text

Gather

Seq Scan

on canonical_release_redirect as crr

Hash Join

on rgt.tag = t_2.id

Hash

1
0

Nested Loop

1
0

Index Scan

on artist as a1
using artist_pkey
1
0

Parallel Seq Scan

on link_attribute as la
1
0

Parallel Index Scan

on release as rel_1
using release_pkey
1
0

Index Scan

on cover_art as caa
using cover_art_idx_release
1
0

Parallel Seq Scan

on cover_art_type as cat

Seq Scan

on recording as r_1

Hash

1
0

Parallel Hash Join

on rt.tag = t.id
1
0

Hash

1
0

Parallel Hash Join

on acn_3.artist_credit = ac_3.id

Hash Join

on rel.release_group = rg.id

Hash

Seq Scan

on genre as g_2
1
0

Hash Join

Left join
on l_1.link_type = lt_1.id
1
0

Index Scan

on recording as r_6
using recording_pkey

Hash Join

Left join
on a_1.area = ar.id
1
0

Parallel Hash Join

on r_3.id = rt.recording
1
0

Parallel Hash

1
0

Seq Scan

on genre as g
1
0

Parallel Hash Join

on acn_3.artist = a_3.id
1
0

Parallel Hash

Seq Scan

on release as rel

Hash

Seq Scan

on tag as t_2
1
0

Parallel Hash Join

Left join
on lar.link = l_1.id
1
0

Hash

Hash Join

Left join
on a_1.gender = ag_1.id

Hash

1
0

Parallel Seq Scan

on recording as r_3
1
0

Parallel Hash

1
0

Parallel Seq Scan

on tag as t
1
0

Parallel Seq Scan

on artist_credit_name as acn_3
1
0

Parallel Hash

1
0

Parallel Seq Scan

on artist_credit as ac_3

Hash Join

on rgt.release_group = rg.id
1
0

Parallel Seq Scan

on l_artist_recording as lar
1
0

Parallel Hash

1
0

Seq Scan

on link_type as lt_1

Hash Join

on a_1.type = at_1.id

Hash

Seq Scan

on area as ar
1
0

Parallel Seq Scan

on recording_tag as rt
1
0

Hash Join

Left join
on (t_1.name)::text = (g_1.name)::text

Seq Scan

on release_group_tag as rgt

Hash

1
0

Parallel Seq Scan

on link as l_1

Hash Join

Left join
on a_1.gid = arl.gid

Hash

Seq Scan

on gender as ag_1
1
0

Parallel Hash Join

on at_2.tag = t_1.id
1
0

Hash

Seq Scan

on release_group as rg

Hash Join

on acn_1.artist_credit = ac_1.id

Hash

Seq Scan

on artist_type as at_1
1
0

Parallel Hash Join

on at_2.artist = a_3.id
1
0

Parallel Hash

1
0

Seq Scan

on genre as g_1

Hash Join

on acn_1.artist = a_1.id

Hash

Subquery Scan

on arl
1
0

Parallel Seq Scan

on artist_tag as at_2
1
0

Parallel Hash

1
0

Parallel Seq Scan

on tag as t_1

Seq Scan

on artist_credit_name as acn_1

Hash

Seq Scan

on artist_credit as ac_1

GroupAggregate

by a_2.gid
1
0

Parallel Seq Scan

on artist as a_3

Seq Scan

on artist as a_1

Sort

by a_2.gid

Gather

1
0

Nested Loop

1
0

Nested Loop Join

Left join
1
0

Index Only Scan

on recording as r_2
using recording_idx_artist_credit
1
0

Nested Loop

1
0

Index Scan

on url as u
using url_pkey
1
0

Hash Join

on acn_2.artist = a_2.id
1
0

Index Only Scan

on artist_credit as ac_2
using artist_credit_pkey
1
0

Parallel Seq Scan

on artist_credit_name as acn_2
1
0

Hash

1
0

Hash Join

Right join
on lau.entity0 = a_2.id
1
0

Hash Join

Left join
on l.link_type = lt.id
1
0

Hash

1
0

Hash Join

Left join
on lau.link = l.id
1
0

Hash

1
0

Seq Scan

on artist as a_2
1
0

Seq Scan

on l_artist_url as lau
1
0

Hash

1
0

Seq Scan

on link_type as lt
1
0

Seq Scan

on link as l
Group  (cost=59357920.75..61435742.23 rows=43743610 width=379)
  Group Key: r.gid, r.name, ac.name, temp.name, r.length, rrl.recording_links, (array_agg(jsonb_build_array(t.name, rt.count, g.gid))), (array_agg(jsonb_build_array(t_2.name, rgt.count, rg.gid, g_2.gid))), rg.gid, (array_agg(jsonb_build_array(a_1.gid, a_1.begin_date_year, a_1.end_date_year, at_1.name, ag_1.name, ar.name, arl.artist_links))), (array_agg(jsonb_build_array(t_1.name, at_2.count, a_3.gid, g_1.gid))), temp.release_mbid, temp.caa_id, cmb.year
  ->  Sort  (cost=59357920.75..59467279.78 rows=43743610 width=307)
        Sort Key: r.gid, r.name, ac.name, temp.name, r.length, rrl.recording_links, (array_agg(jsonb_build_array(t.name, rt.count, g.gid))), (array_agg(jsonb_build_array(t_2.name, rgt.count, rg.gid, g_2.gid))), rg.gid, (array_agg(jsonb_build_array(a_1.gid, a_1.begin_date_year, a_1.end_date_year, at_1.name, ag_1.name, ar.name, arl.artist_links))), (array_agg(jsonb_build_array(t_1.name, at_2.count, a_3.gid, g_1.gid))), temp.release_mbid, temp.caa_id, cmb.year
        ->  Hash Left Join  (cost=34422236.16..47526692.77 rows=43743610 width=307)
              Hash Cond: (r.gid = temp.recording_mbid)
              ->  Hash Left Join  (cost=28037635.52..40976868.83 rows=43743610 width=246)
                    Hash Cond: (r.gid = rrl.gid)
                    ->  Hash Join  (cost=27687999.66..40512405.96 rows=43743610 width=214)
                          Hash Cond: (r.artist_credit = ac.id)
                          ->  Merge Left Join  (cost=27279000.36..37354431.68 rows=38835668 width=192)
                                Merge Cond: (r.gid = r_5.gid)
                                ->  Merge Left Join  (cost=16852494.48..24918568.70 rows=27029478 width=144)
                                      Merge Cond: (r.gid = cmb.recording_mbid)
                                      ->  Merge Left Join  (cost=16852493.92..21631578.28 rows=27029478 width=140)
                                            Merge Cond: (r.gid = r_4.gid)
                                            ->  Merge Left Join  (cost=14170867.99..18441924.24 rows=27029478 width=108)
                                                  Merge Cond: (r.gid = r_3.gid)
                                                  ->  Merge Left Join  (cost=11979773.62..15910322.26 rows=27029478 width=76)
                                                        Merge Cond: (r.gid = r_1.gid)
                                                        ->  Index Scan using recording_idx_gid on recording r  (cost=0.56..2447550.23 rows=27029478 width=44)
                                                        ->  GroupAggregate  (cost=11979773.05..12787035.08 rows=27029478 width=48)
                                                              Group Key: r_1.gid
                                                              ->  Sort  (cost=11979773.05..12097121.44 rows=46939355 width=94)
                                                                    Sort Key: r_1.gid
                                                                    ->  Hash Join  (cost=1900051.36..3592129.78 rows=46939355 width=94)
                                                                          Hash Cond: (r_1.artist_credit = ac_1.id)
                                                                          ->  Seq Scan on recording r_1  (cost=0.00..646983.78 rows=27029478 width=20)
                                                                          ->  Hash  (cost=1792415.05..1792415.05 rows=4112665 width=86)
                                                                                ->  Hash Left Join  (cost=1515728.67..1792415.05 rows=4112665 width=86)
                                                                                      Hash Cond: (a_1.area = ar.id)
                                                                                      ->  Hash Left Join  (cost=1511657.62..1777548.07 rows=4112665 width=79)
                                                                                            Hash Cond: (a_1.gender = ag_1.id)
                                                                                            ->  Hash Join  (cost=1511656.51..1762878.44 rows=4112665 width=75)
                                                                                                  Hash Cond: (a_1.type = at_1.id)
                                                                                                  ->  Hash Left Join  (cost=1511655.38..1746146.33 rows=4112665 width=72)
                                                                                                        Hash Cond: (a_1.gid = arl.gid)
                                                                                                        ->  Hash Join  (cost=198871.50..340891.69 rows=4112665 width=40)
                                                                                                              Hash Cond: (acn_1.artist_credit = ac_1.id)
                                                                                                              ->  Hash Join  (cost=92522.32..223746.74 rows=4112665 width=36)
                                                                                                                    Hash Cond: (acn_1.artist = a_1.id)
                                                                                                                    ->  Seq Scan on artist_credit_name acn_1  (cost=0.00..72818.65 rows=4112665 width=8)
                                                                                                                    ->  Hash  (cost=52279.70..52279.70 rows=1981170 width=36)
                                                                                                                          ->  Seq Scan on artist a_1  (cost=0.00..52279.70 rows=1981170 width=36)
                                                                                                              ->  Hash  (cost=76746.30..76746.30 rows=2368230 width=4)
                                                                                                                    ->  Seq Scan on artist_credit ac_1  (cost=0.00..76746.30 rows=2368230 width=4)
                                                                                                        ->  Hash  (cost=1270606.25..1270606.25 rows=1981170 width=48)
                                                                                                              ->  Subquery Scan on arl  (cost=1211117.41..1270606.25 rows=1981170 width=48)
                                                                                                                    ->  GroupAggregate  (cost=1211117.41..1250794.55 rows=1981170 width=48)
                                                                                                                          Group Key: a_2.gid
                                                                                                                          ->  Sort  (cost=1211117.41..1216088.25 rows=1988335 width=72)
                                                                                                                                Sort Key: a_2.gid
                                                                                                                                ->  Gather  (cost=200516.11..921552.96 rows=1988335 width=72)
                                                                                                                                      Workers Planned: 2
                                                                                                                                      ->  Nested Loop  (cost=199516.11..721719.46 rows=828473 width=72)
                                                                                                                                            ->  Nested Loop Left Join  (cost=199515.55..334836.78 rows=72588 width=80)
                                                                                                                                                  ->  Nested Loop  (cost=199515.12..289447.79 rows=72588 width=40)
                                                                                                                                                        ->  Hash Join  (cost=199514.69..255494.71 rows=72588 width=36)
                                                                                                                                                              Hash Cond: (acn_2.artist = a_2.id)
                                                                                                                                                              ->  Parallel Seq Scan on artist_credit_name acn_2  (cost=0.00..48828.10 rows=1713610 width=8)
                                                                                                                                                              ->  Hash  (cost=198465.66..198465.66 rows=83922 width=36)
                                                                                                                                                                    ->  Hash Right Join  (cost=101372.24..198465.66 rows=83922 width=36)
                                                                                                                                                                          Hash Cond: (lau.entity0 = a_2.id)
                                                                                                                                                                          Filter: ((lt.gid = ANY ('{99429741-f3f6-484b-84f8-23af51991770,fe33d22f-c3b0-4d68-bd53-a856badf2b15,fe33d22f-c3b0-4d68-bd53-a856badf2b15,689870a4-a1e4-4912-b17f-7b2664215698,93883cf6-e818-4938-990e-75863f8db2d3,6f77d54e-1d81-4e1a-9ea5-37947577151b,e4d73442-3762-45a8-905c-401da65544ed,611b1862-67af-4253-a64f-34adba305d1d,f8319a2f-f824-4617-81c8-be6560b3b203,34ae77fe-defb-43ea-95d4-63c7540bac78,769085a1-c2f7-4c24-a532-2375a77693bd,63cc5d1f-f096-4c94-a43f-ecb32ea94161,6a540e5b-58c6-4192-b6ba-dbc71ec8fcf0}'::uuid[])) OR (lt.gid IS NULL))
                                                                                                                                                                          ->  Hash Left Join  (cost=24327.92..111897.78 rows=3627999 width=36)
                                                                                                                                                                                Hash Cond: (l.link_type = lt.id)
                                                                                                                                                                                ->  Hash Left Join  (cost=24291.28..102265.82 rows=3627999 width=12)
                                                                                                                                                                                      Hash Cond: (lau.link = l.id)
                                                                                                                                                                                      ->  Seq Scan on l_artist_url lau  (cost=0.00..68450.99 rows=3627999 width=12)
                                                                                                                                                                                      ->  Hash  (cost=14548.90..14548.90 rows=779390 width=8)
                                                                                                                                                                                            ->  Seq Scan on link l  (cost=0.00..14548.90 rows=779390 width=8)
                                                                                                                                                                                ->  Hash  (cost=29.62..29.62 rows=562 width=32)
                                                                                                                                                                                      ->  Seq Scan on link_type lt  (cost=0.00..29.62 rows=562 width=32)
                                                                                                                                                                          ->  Hash  (cost=52279.70..52279.70 rows=1981170 width=20)
                                                                                                                                                                                ->  Seq Scan on artist a_2  (cost=0.00..52279.70 rows=1981170 width=20)
                                                                                                                                                        ->  Index Only Scan using artist_credit_pkey on artist_credit ac_2  (cost=0.43..0.47 rows=1 width=4)
                                                                                                                                                              Index Cond: (id = acn_2.artist_credit)
                                                                                                                                                  ->  Index Scan using url_pkey on url u  (cost=0.43..0.63 rows=1 width=48)
                                                                                                                                                        Index Cond: (id = lau.entity1)
                                                                                                                                            ->  Index Only Scan using recording_idx_artist_credit on recording r_2  (cost=0.56..3.67 rows=166 width=4)
                                                                                                                                                  Index Cond: (artist_credit = ac_2.id)
                                                                                                  ->  Hash  (cost=1.06..1.06 rows=6 width=11)
                                                                                                        ->  Seq Scan on artist_type at_1  (cost=0.00..1.06 rows=6 width=11)
                                                                                            ->  Hash  (cost=1.05..1.05 rows=5 width=12)
                                                                                                  ->  Seq Scan on gender ag_1  (cost=0.00..1.05 rows=5 width=12)
                                                                                      ->  Hash  (cost=2584.91..2584.91 rows=118891 width=15)
                                                                                            ->  Seq Scan on area ar  (cost=0.00..2584.91 rows=118891 width=15)
                                                  ->  GroupAggregate  (cost=2191094.38..2327561.33 rows=6065198 width=48)
                                                        Group Key: r_3.gid
                                                        ->  Sort  (cost=2191094.38..2206257.37 rows=6065198 width=50)
                                                              Sort Key: r_3.gid
                                                              ->  Gather  (cost=107453.84..1300476.93 rows=6065198 width=50)
                                                                    Workers Planned: 2
                                                                    ->  Hash Left Join  (cost=106453.84..692957.13 rows=2527166 width=50)
                                                                          Hash Cond: ((t.name)::text = (g.name)::text)
                                                                          ->  Parallel Hash Join  (cost=106408.38..683273.28 rows=2527166 width=34)
                                                                                Hash Cond: (rt.tag = t.id)
                                                                                ->  Parallel Hash Join  (cost=102234.81..672465.76 rows=2527166 width=24)
                                                                                      Hash Cond: (r_3.id = rt.recording)
                                                                                      ->  Parallel Seq Scan on recording r_3  (cost=0.00..489311.83 rows=11262282 width=20)
                                                                                      ->  Parallel Hash  (cost=70645.23..70645.23 rows=2527166 width=12)
                                                                                            ->  Parallel Seq Scan on recording_tag rt  (cost=0.00..70645.23 rows=2527166 width=12)
                                                                                                  Filter: (count > 0)
                                                                                ->  Parallel Hash  (cost=2667.70..2667.70 rows=120470 width=18)
                                                                                      ->  Parallel Seq Scan on tag t  (cost=0.00..2667.70 rows=120470 width=18)
                                                                          ->  Hash  (cost=29.09..29.09 rows=1309 width=27)
                                                                                ->  Seq Scan on genre g  (cost=0.00..29.09 rows=1309 width=27)
                                            ->  GroupAggregate  (cost=2681625.92..2901853.13 rows=9787876 width=48)
                                                  Group Key: r_4.gid
                                                  ->  Sort  (cost=2681625.92..2706095.61 rows=9787876 width=66)
                                                        Sort Key: r_4.gid
                                                        ->  Hash Join  (cost=297447.95..1143671.02 rows=9787876 width=66)
                                                              Hash Cond: (r_4.artist_credit = ac_3.id)
                                                              ->  Seq Scan on recording r_4  (cost=0.00..646983.78 rows=27029478 width=20)
                                                              ->  Hash  (cost=286728.20..286728.20 rows=857580 width=58)
                                                                    ->  Gather  (cost=142676.17..286728.20 rows=857580 width=58)
                                                                          Workers Planned: 2
                                                                          ->  Parallel Hash Join  (cost=141676.17..199970.20 rows=357325 width=58)
                                                                                Hash Cond: (acn_3.artist_credit = ac_3.id)
                                                                                ->  Parallel Hash Join  (cost=66410.02..123766.07 rows=357325 width=54)
                                                                                      Hash Cond: (acn_3.artist = a_3.id)
                                                                                      ->  Parallel Seq Scan on artist_credit_name acn_3  (cost=0.00..48828.10 rows=1713610 width=8)
                                                                                      ->  Parallel Hash  (cost=63372.39..63372.39 rows=243010 width=58)
                                                                                            ->  Hash Left Join  (cost=55260.50..63372.39 rows=243010 width=58)
                                                                                                  Hash Cond: ((t_1.name)::text = (g_1.name)::text)
                                                                                                  ->  Parallel Hash Join  (cost=55215.05..62400.12 rows=243010 width=42)
                                                                                                        Hash Cond: (at_2.tag = t_1.id)
                                                                                                        ->  Parallel Hash Join  (cost=51041.47..57588.63 rows=243010 width=32)
                                                                                                              Hash Cond: (at_2.artist = a_3.id)
                                                                                                              ->  Parallel Seq Scan on artist_tag at_2  (cost=0.00..5909.26 rows=243010 width=12)
                                                                                                                    Filter: (count > 0)
                                                                                                              ->  Parallel Hash  (cost=40722.88..40722.88 rows=825488 width=20)
                                                                                                                    ->  Parallel Seq Scan on artist a_3  (cost=0.00..40722.88 rows=825488 width=20)
                                                                                                        ->  Parallel Hash  (cost=2667.70..2667.70 rows=120470 width=18)
                                                                                                              ->  Parallel Seq Scan on tag t_1  (cost=0.00..2667.70 rows=120470 width=18)
                                                                                                  ->  Hash  (cost=29.09..29.09 rows=1309 width=27)
                                                                                                        ->  Seq Scan on genre g_1  (cost=0.00..29.09 rows=1309 width=27)
                                                                                ->  Parallel Hash  (cost=62931.62..62931.62 rows=986762 width=4)
                                                                                      ->  Parallel Seq Scan on artist_credit ac_3  (cost=0.00..62931.62 rows=986762 width=4)
                                      ->  Index Scan using canonical_musicbrainz_data_idx_recording_mbid on canonical_musicbrainz_data cmb  (cost=0.56..2950239.70 rows=21534162 width=20)
                                ->  Materialize  (cost=10426505.88..11882843.43 rows=38835668 width=64)
                                      ->  GroupAggregate  (cost=10426505.88..11397397.58 rows=38835668 width=64)
                                            Group Key: r_5.gid, rg.gid
                                            ->  Sort  (cost=10426505.88..10523595.05 rows=38835668 width=66)
                                                  Sort Key: r_5.gid, rg.gid
                                                  ->  Hash Join  (cost=1718373.51..3938228.26 rows=38835668 width=66)
                                                        Hash Cond: (crr.release_mbid = rel.gid)
                                                        ->  Hash Join  (cost=1034636.03..2204290.20 rows=27029478 width=32)
                                                              Hash Cond: (r_5.gid = crr.recording_mbid)
                                                              ->  Seq Scan on recording r_5  (cost=0.00..646983.78 rows=27029478 width=16)
                                                              ->  Hash  (cost=503549.68..503549.68 rows=27466268 width=32)
                                                                    ->  Seq Scan on canonical_release_redirect crr  (cost=0.00..503549.68 rows=27466268 width=32)
                                                        ->  Hash  (cost=568434.82..568434.82 rows=4760853 width=66)
                                                              ->  Hash Left Join  (cost=312537.42..568434.82 rows=4760853 width=66)
                                                                    Hash Cond: ((t_2.name)::text = (g_2.name)::text)
                                                                    ->  Hash Join  (cost=312491.97..550231.87 rows=4760853 width=50)
                                                                          Hash Cond: (rgt.tag = t_2.id)
                                                                          ->  Hash Join  (cost=306420.99..531663.40 rows=4760853 width=40)
                                                                                Hash Cond: (rel.release_group = rg.id)
                                                                                ->  Seq Scan on release rel  (cost=0.00..88914.36 rows=3313536 width=20)
                                                                                ->  Hash  (cost=235605.79..235605.79 rows=3662336 width=32)
                                                                                      ->  Hash Join  (cost=104828.87..235605.79 rows=3662336 width=32)
                                                                                            Hash Cond: (rgt.release_group = rg.id)
                                                                                            ->  Seq Scan on release_group_tag rgt  (cost=0.00..70461.27 rows=3662336 width=12)
                                                                                                  Filter: (count > 0)
                                                                                            ->  Hash  (cost=58030.72..58030.72 rows=2548972 width=20)
                                                                                                  ->  Seq Scan on release_group rg  (cost=0.00..58030.72 rows=2548972 width=20)
                                                                          ->  Hash  (cost=3510.99..3510.99 rows=204799 width=18)
                                                                                ->  Seq Scan on tag t_2  (cost=0.00..3510.99 rows=204799 width=18)
                                                                    ->  Hash  (cost=29.09..29.09 rows=1309 width=27)
                                                                          ->  Seq Scan on genre g_2  (cost=0.00..29.09 rows=1309 width=27)
                          ->  Hash  (cost=354815.30..354815.30 rows=2667520 width=34)
                                ->  Hash Join  (cost=199585.75..354815.30 rows=2667520 width=34)
                                      Hash Cond: (acn.artist_credit = ac.id)
                                      ->  Hash Join  (cost=77046.57..188243.87 rows=2667520 width=4)
                                            Hash Cond: (a.type = at.id)
                                            ->  Hash Join  (cost=77045.44..177390.83 rows=2667520 width=12)
                                                  Hash Cond: (a.type = ag.id)
                                                  ->  Hash Join  (cost=77044.32..160658.74 rows=4112665 width=8)
                                                        Hash Cond: (acn.artist = a.id)
                                                        ->  Seq Scan on artist_credit_name acn  (cost=0.00..72818.65 rows=4112665 width=8)
                                                        ->  Hash  (cost=52279.70..52279.70 rows=1981170 width=8)
                                                              ->  Seq Scan on artist a  (cost=0.00..52279.70 rows=1981170 width=8)
                                                  ->  Hash  (cost=1.05..1.05 rows=5 width=4)
                                                        ->  Seq Scan on gender ag  (cost=0.00..1.05 rows=5 width=4)
                                            ->  Hash  (cost=1.06..1.06 rows=6 width=4)
                                                  ->  Seq Scan on artist_type at  (cost=0.00..1.06 rows=6 width=4)
                                      ->  Hash  (cost=76746.30..76746.30 rows=2368230 width=30)
                                            ->  Seq Scan on artist_credit ac  (cost=0.00..76746.30 rows=2368230 width=30)
                    ->  Hash  (cost=347179.92..347179.92 rows=196476 width=48)
                          ->  Subquery Scan on rrl  (cost=340303.26..347179.92 rows=196476 width=48)
                                ->  GroupAggregate  (cost=340303.26..345215.16 rows=196476 width=48)
                                      Group Key: r_6.gid
                                      ->  Sort  (cost=340303.26..340794.45 rows=196476 width=67)
                                            Sort Key: r_6.gid
                                            ->  Gather  (cost=24367.54..323029.09 rows=196476 width=67)
                                                  Workers Planned: 2
                                                  ->  Hash Left Join  (cost=23367.54..302381.49 rows=81865 width=67)
                                                        Hash Cond: (la.attribute_type = lat.id)
                                                        ->  Parallel Hash Left Join  (cost=23316.73..302114.96 rows=81865 width=61)
                                                              Hash Cond: (l_1.id = la.link)
                                                              ->  Nested Loop  (cost=14099.29..290375.13 rows=81865 width=61)
                                                                    ->  Nested Loop  (cost=14098.87..252925.87 rows=81865 width=36)
                                                                          ->  Hash Left Join  (cost=14098.43..203275.29 rows=81865 width=24)
                                                                                Hash Cond: (l_1.link_type = lt_1.id)
                                                                                Filter: ((lt_1.gid = ANY ('{628a9658-f54c-4142-b0c0-95f031b544da,59054b12-01ac-43ee-a618-285fd397e461,0fdbe3c6-7700-4a31-ae54-b53f06ae1cfa,234670ce-5f22-4fd0-921b-ef1662695c5d,3b6616c5-88ba-4341-b4ee-81ce1e6d7ebb,92777657-504c-4acb-bd33-51a201bd57e1,45d0cbc5-d65b-4e77-bdfd-8a75207cb5c5,7e41ef12-a124-4324-afdb-fdbae687a89c,b5f3058a-666c-406f-aafb-f9249fc7b122}'::uuid[])) OR (lt_1.gid IS NULL))
                                                                                ->  Parallel Hash Left Join  (cost=14061.78..189616.08 rows=5112017 width=16)
                                                                                      Hash Cond: (lar.link = l_1.id)
                                                                                      ->  Parallel Seq Scan on l_artist_recording lar  (cost=0.00..162135.17 rows=5112017 width=12)
                                                                                      ->  Parallel Hash  (cost=10002.46..10002.46 rows=324746 width=8)
                                                                                            ->  Parallel Seq Scan on link l_1  (cost=0.00..10002.46 rows=324746 width=8)
                                                                                ->  Hash  (cost=29.62..29.62 rows=562 width=32)
                                                                                      ->  Seq Scan on link_type lt_1  (cost=0.00..29.62 rows=562 width=32)
                                                                          ->  Index Scan using recording_pkey on recording r_6  (cost=0.44..0.61 rows=1 width=20)
                                                                                Index Cond: (id = lar.entity1)
                                                                    ->  Index Scan using artist_pkey on artist a1  (cost=0.43..0.46 rows=1 width=33)
                                                                          Index Cond: (id = lar.entity0)
                                                              ->  Parallel Hash  (cost=5991.08..5991.08 rows=258108 width=8)
                                                                    ->  Parallel Seq Scan on link_attribute la  (cost=0.00..5991.08 rows=258108 width=8)
                                                        ->  Hash  (cost=37.03..37.03 rows=1103 width=14)
                                                              ->  Seq Scan on link_attribute_type lat  (cost=0.00..37.03 rows=1103 width=14)
              ->  Hash  (cost=6383685.53..6383685.53 rows=73208 width=77)
                    ->  Subquery Scan on temp  (cost=5834627.45..6383685.53 rows=73208 width=77)
                          Filter: (temp.rownum = 1)
                          ->  WindowAgg  (cost=5834627.45..6200666.17 rows=14641549 width=109)
                                ->  Sort  (cost=5834627.45..5871231.32 rows=14641549 width=81)
                                      Sort Key: crr_1.recording_mbid, caa.ordering
                                      ->  Gather  (cost=1096025.82..3391399.14 rows=14641549 width=81)
                                            Workers Planned: 2
                                            ->  Parallel Hash Left Join  (cost=1095025.82..1926244.24 rows=6100645 width=81)
                                                  Hash Cond: (crr_1.release_mbid = rel_1.gid)
                                                  Filter: ((cat.type_id = 1) OR (cat.type_id IS NULL))
                                                  ->  Parallel Hash Left Join  (cost=564616.26..1271708.57 rows=11262282 width=48)
                                                        Hash Cond: (r_7.gid = crr_1.recording_mbid)
                                                        ->  Parallel Seq Scan on recording r_7  (cost=0.00..489311.83 rows=11262282 width=16)
                                                        ->  Parallel Hash  (cost=343329.78..343329.78 rows=11444278 width=32)
                                                              ->  Parallel Seq Scan on canonical_release_redirect crr_1  (cost=0.00..343329.78 rows=11444278 width=32)
                                                  ->  Parallel Hash  (cost=510457.43..510457.43 rows=1596170 width=53)
                                                        ->  Parallel Hash Left Join  (cost=58128.68..510457.43 rows=1596170 width=53)
                                                              Hash Cond: (caa.id = cat.id)
                                                              ->  Merge Left Join  (cost=0.86..438018.21 rows=1532138 width=49)
                                                                    Merge Cond: (rel_1.id = caa.release)
                                                                    ->  Parallel Index Scan using release_pkey on release rel_1  (cost=0.43..173795.62 rows=1380640 width=41)
                                                                    ->  Index Scan using cover_art_idx_release on cover_art caa  (cost=0.43..236939.67 rows=3677131 width=16)
                                                              ->  Parallel Hash  (cost=38175.70..38175.70 rows=1596170 width=12)
                                                                    ->  Parallel Seq Scan on cover_art_type cat  (cost=0.00..38175.70 rows=1596170 width=12)
JIT:
  Functions: 428
  Options: Inlining true, Optimization true, Expressions true, Deforming true
WITH artist_rels AS (
                                SELECT a.gid
                                     , array_agg(distinct(ARRAY[lt.name, url])) AS artist_links
                                  FROM recording r
                                  JOIN artist_credit ac
                                    ON r.artist_credit = ac.id
                                  JOIN artist_credit_name acn
                                    ON acn.artist_credit = ac.id
                                  JOIN artist a
                                    ON acn.artist = a.id
                             LEFT JOIN l_artist_url lau
                                    ON lau.entity0 = a.id
                             LEFT JOIN url u
                                    ON lau.entity1 = u.id
                             LEFT JOIN link l
                                    ON lau.link = l.id
                             LEFT JOIN link_type lt
                                    ON l.link_type = lt.id
                                 WHERE (lt.gid IN ('99429741-f3f6-484b-84f8-23af51991770'
                                                  ,'fe33d22f-c3b0-4d68-bd53-a856badf2b15'
                                                  ,'fe33d22f-c3b0-4d68-bd53-a856badf2b15'
                                                  ,'689870a4-a1e4-4912-b17f-7b2664215698'
                                                  ,'93883cf6-e818-4938-990e-75863f8db2d3'
                                                  ,'6f77d54e-1d81-4e1a-9ea5-37947577151b'
                                                  ,'e4d73442-3762-45a8-905c-401da65544ed'
                                                  ,'611b1862-67af-4253-a64f-34adba305d1d'
                                                  ,'f8319a2f-f824-4617-81c8-be6560b3b203'
                                                  ,'34ae77fe-defb-43ea-95d4-63c7540bac78'
                                                  ,'769085a1-c2f7-4c24-a532-2375a77693bd'
                                                  ,'63cc5d1f-f096-4c94-a43f-ecb32ea94161'
                                                  ,'6a540e5b-58c6-4192-b6ba-dbc71ec8fcf0')
                                        OR lt.gid IS NULL)
                              GROUP BY a.gid
                   ), recording_rels AS (
                                SELECT r.gid
                                     , array_agg(ARRAY[lt.name, a1.name, a1.gid::TEXT, lat.name]) AS recording_links
                                  FROM recording r
                             LEFT JOIN l_artist_recording lar
                                    ON lar.entity1 = r.id
                                  JOIN artist a1
                                    ON lar.entity0 = a1.id
                             LEFT JOIN link l
                                    ON lar.link = l.id
                             LEFT JOIN link_type lt
                                    ON l.link_type = lt.id
                             LEFT JOIN link_attribute la
                                    ON la.link = l.id
                             LEFT JOIN link_attribute_type lat
                                    ON la.attribute_type = lat.id
                                 WHERE (lt.gid IN ('628a9658-f54c-4142-b0c0-95f031b544da'
                                                   ,'59054b12-01ac-43ee-a618-285fd397e461'
                                                   ,'0fdbe3c6-7700-4a31-ae54-b53f06ae1cfa'
                                                   ,'234670ce-5f22-4fd0-921b-ef1662695c5d'
                                                   ,'3b6616c5-88ba-4341-b4ee-81ce1e6d7ebb'
                                                   ,'92777657-504c-4acb-bd33-51a201bd57e1'
                                                   ,'45d0cbc5-d65b-4e77-bdfd-8a75207cb5c5'
                                                   ,'7e41ef12-a124-4324-afdb-fdbae687a89c'
                                                   ,'b5f3058a-666c-406f-aafb-f9249fc7b122')
                                       OR lt.gid IS NULL)
                               GROUP BY r.gid
                   ), artist_data AS (
                            SELECT r.gid
                                 , array_agg(jsonb_build_array(a.gid
                                                              ,a.begin_date_year
                                                              ,a.end_date_year
                                                              ,at.name
                                                              ,ag.name
                                                              ,ar.name
                                                              ,artist_links)) AS artist_data
                              FROM recording r
                              JOIN artist_credit ac
                                ON r.artist_credit = ac.id
                              JOIN artist_credit_name acn
                                ON acn.artist_credit = ac.id
                              JOIN artist a
                                ON acn.artist = a.id
                              JOIN artist_type  at
                                ON a.type = at.id
                         LEFT JOIN gender ag
                                ON a.gender = ag.id
                         LEFT JOIN area ar
                                ON a.area = ar.id
                         LEFT JOIN artist_rels arl
                                ON arl.gid = a.gid
                          GROUP BY r.gid
                   ), recording_tags AS (
                            SELECT r.gid AS recording_mbid
                                 , array_agg(jsonb_build_array(t.name, count, g.gid)) AS recording_tags
                              FROM musicbrainz.tag t
                              JOIN recording_tag rt
                                ON rt.tag = t.id
                              JOIN recording r
                                ON rt.recording = r.id
                         LEFT JOIN genre g
                                ON t.name = g.name
                             WHERE count > 0
                             GROUP BY r.gid
                   ), artist_tags AS (
                            SELECT r.gid AS recording_mbid
                                 , array_agg(jsonb_build_array(t.name, count, a.gid, g.gid)) AS artist_tags
                              FROM recording r
                              JOIN artist_credit ac
                                ON r.artist_credit = ac.id
                              JOIN artist_credit_name acn
                                ON acn.artist_credit = ac.id
                              JOIN artist a
                                ON acn.artist = a.id
                              JOIN artist_tag at
                                ON at.artist = a.id
                              JOIN tag t
                                ON at.tag = t.id
                         LEFT JOIN genre g
                                ON t.name = g.name
]                             WHERE count > 0
                          GROUP BY r.gid
                   ), release_group_tags AS (
                            SELECT r.gid AS recording_mbid
                                 , rg.gid AS release_group_mbid
                                 , array_agg(jsonb_build_array(t.name, count, rg.gid, g.gid)) AS release_group_tags
                              FROM recording r
                         LEFT JOIN mapping.canonical_release_redirect crr
                                ON r.gid = crr.recording_mbid
                         LEFT JOIN release rel
                                ON crr.release_mbid = rel.gid
                              JOIN release_group rg
                                ON rel.release_group = rg.id
                              JOIN release_group_tag rgt
                                ON rgt.release_group = rel.release_group
                              JOIN tag t
                                ON rgt.tag = t.id
                         LEFT JOIN genre g
                                ON t.name = g.name
                             WHERE count > 0
                          GROUP BY r.gid, rg.gid
                   ), release_data AS (
                            SELECT * FROM (
                                    SELECT r.gid AS recording_mbid
                                         , rel.name
                                         , rel.release_group
                                         , crr.release_mbid::TEXT
                                         , caa.id AS caa_id
                                         , row_number() OVER (partition by recording_mbid ORDER BY ordering) AS rownum
                                      FROM recording r
                                 LEFT JOIN mapping.canonical_release_redirect crr
                                        ON r.gid = crr.recording_mbid
                                 LEFT JOIN release rel
                                        ON crr.release_mbid = rel.gid
                                 LEFT JOIN cover_art_archive.cover_art caa
                                        ON caa.release = rel.id
                                 LEFT JOIN cover_art_archive.cover_art_type cat
                                        ON cat.id = caa.id
                                         WHERE type_id = 1
                                        OR type_id IS NULL
                            ) temp where rownum=1
                   )
                            SELECT recording_links
                                 , r.name AS recording_name
                                 , ac.name AS artist_credit_name
                                 , artist_data
                                 , artist_tags
                                 , recording_tags
                                 , rd.name AS release_name
                                 , release_group_tags
                                 , release_group_mbid::TEXT
                                 , r.length
                                 , r.gid::TEXT AS recording_mbid
                                 , rd.release_mbid::TEXT
                                 , rd.caa_id
                                 , year
                              FROM recording r
                              JOIN artist_credit ac
                                ON r.artist_credit = ac.id
                              JOIN artist_credit_name acn
                                ON acn.artist_credit = ac.id
                              JOIN artist a
                                ON acn.artist = a.id
                              JOIN artist_type  at
                                ON a.type = at.id
                              JOIN gender ag
                                ON a.type = ag.id
                         LEFT JOIN artist_data ard
                                ON ard.gid = r.gid
                         LEFT JOIN recording_rels rrl
                                ON rrl.gid = r.gid
                         LEFT JOIN recording_tags rt
                                ON rt.recording_mbid = r.gid
                         LEFT JOIN artist_tags ats
                                ON ats.recording_mbid = r.gid
                         LEFT JOIN release_group_tags rts
                                ON rts.recording_mbid = r.gid
                         LEFT JOIN release_data rd
                                ON rd.recording_mbid = r.gid
                         LEFT JOIN mapping.canonical_musicbrainz_data cmb
                                ON cmb.recording_mbid = r.gid
                          GROUP BY r.gid
                                 , r.name
                                 , ac.name
                                 , rd.name
                                 , r.length
                                 , recording_links
                                 , recording_tags
                                 , release_group_tags
                                 , release_group_mbid
                                 , artist_data
                                 , artist_tags
                                 , rd.release_mbid
                                 , caa_id
                                 , year;
Table Count Time
recording 8 N/A -
#159 Seq Scan N/A -
#146 Index Scan N/A -
#99 Seq Scan N/A -
#74 Seq Scan N/A -
#64 Seq Scan N/A -
#51 Index Only Scan N/A -
#15 Seq Scan N/A -
#11 Index Scan N/A -
artist_credit_name 4 N/A -
#121 Seq Scan N/A -
#79 Seq Scan N/A -
#37 Seq Scan N/A -
#23 Seq Scan N/A -
artist 5 N/A -
#147 Index Scan N/A -
#123 Seq Scan N/A -
#86 Seq Scan N/A -
#48 Seq Scan N/A -
#25 Seq Scan N/A -
artist_credit 4 N/A -
#129 Seq Scan N/A -
#92 Seq Scan N/A -
#49 Index Only Scan N/A -
#27 Seq Scan N/A -
l_artist_url 1 N/A -
#42 Seq Scan N/A -
link 2 N/A -
#143 Seq Scan N/A -
#44 Seq Scan N/A -
link_type 2 N/A -
#145 Seq Scan N/A -
#46 Seq Scan N/A -
url 1 N/A -
#50 Index Scan N/A -
artist_type 2 N/A -
#127 Seq Scan N/A -
#53 Seq Scan N/A -
gender 2 N/A -
#125 Seq Scan N/A -
#55 Seq Scan N/A -
area 1 N/A -
#57 Seq Scan N/A -
recording_tag 1 N/A -
#66 Seq Scan N/A -
tag 3 N/A -
#113 Seq Scan N/A -
#88 Seq Scan N/A -
#68 Seq Scan N/A -
genre 3 N/A -
#115 Seq Scan N/A -
#90 Seq Scan N/A -
#70 Seq Scan N/A -
artist_tag 1 N/A -
#84 Seq Scan N/A -
canonical_musicbrainz_data 1 N/A -
#93 Index Scan N/A -
canonical_release_redirect 2 N/A -
#161 Seq Scan N/A -
#101 Seq Scan N/A -
release 2 N/A -
#165 Index Scan N/A -
#106 Seq Scan N/A -
release_group_tag 1 N/A -
#109 Seq Scan N/A -
release_group 1 N/A -
#111 Seq Scan N/A -
l_artist_recording 1 N/A -
#141 Seq Scan N/A -
link_attribute 1 N/A -
#149 Seq Scan N/A -
link_attribute_type 1 N/A -
#151 Seq Scan N/A -
cover_art 1 N/A -
#166 Index Scan N/A -
cover_art_type 1 N/A -
#168 Seq Scan N/A -
Function Count Time
No function used
Node Type Count Time
Group 1 N/A -
#1 Group N/A -
Sort 8 N/A -
#155 Sort N/A -
#133 Sort N/A -
#96 Sort N/A -
#72 Sort N/A -
#59 Sort N/A -
#31 Sort N/A -
#13 Sort N/A -
#2 Sort N/A -
Hash Join 40 N/A -
#163 Hash Join N/A -
#158 Hash Join N/A -
#157 Hash Join N/A -
#140 Hash Join N/A -
#139 Hash Join N/A -
#136 Hash Join N/A -
#135 Hash Join N/A -
#120 Hash Join N/A -
#119 Hash Join N/A -
#118 Hash Join N/A -
#117 Hash Join N/A -
#108 Hash Join N/A -
#105 Hash Join N/A -
#104 Hash Join N/A -
#103 Hash Join N/A -
#98 Hash Join N/A -
#97 Hash Join N/A -
#83 Hash Join N/A -
#82 Hash Join N/A -
#81 Hash Join N/A -
#78 Hash Join N/A -
#77 Hash Join N/A -
#73 Hash Join N/A -
#63 Hash Join N/A -
#62 Hash Join N/A -
#61 Hash Join N/A -
#41 Hash Join N/A -
#40 Hash Join N/A -
#39 Hash Join N/A -
#36 Hash Join N/A -
#22 Hash Join N/A -
#21 Hash Join N/A -
#20 Hash Join N/A -
#19 Hash Join N/A -
#18 Hash Join N/A -
#17 Hash Join N/A -
#14 Hash Join N/A -
#5 Hash Join N/A -
#4 Hash Join N/A -
#3 Hash Join N/A -
Merge Join 6 N/A -
#164 Merge Join N/A -
#10 Merge Join N/A -
#9 Merge Join N/A -
#8 Merge Join N/A -
#7 Merge Join N/A -
#6 Merge Join N/A -
Index Scan 7 N/A -
#166 Index Scan N/A -
#165 Index Scan N/A -
#147 Index Scan N/A -
#146 Index Scan N/A -
#93 Index Scan N/A -
#50 Index Scan N/A -
#11 Index Scan N/A -
GroupAggregate 6 N/A -
#132 GroupAggregate N/A -
#95 GroupAggregate N/A -
#71 GroupAggregate N/A -
#58 GroupAggregate N/A -
#30 GroupAggregate N/A -
#12 GroupAggregate N/A -
Seq Scan 43 N/A -
#168 Seq Scan N/A -
#161 Seq Scan N/A -
#159 Seq Scan N/A -
#151 Seq Scan N/A -
#149 Seq Scan N/A -
#145 Seq Scan N/A -
#143 Seq Scan N/A -
#141 Seq Scan N/A -
#129 Seq Scan N/A -
#127 Seq Scan N/A -
#125 Seq Scan N/A -
#123 Seq Scan N/A -
#121 Seq Scan N/A -
#115 Seq Scan N/A -
#113 Seq Scan N/A -
#111 Seq Scan N/A -
#109 Seq Scan N/A -
#106 Seq Scan N/A -
#101 Seq Scan N/A -
#99 Seq Scan N/A -
#92 Seq Scan N/A -
#90 Seq Scan N/A -
#88 Seq Scan N/A -
#86 Seq Scan N/A -
#84 Seq Scan N/A -
#79 Seq Scan N/A -
#74 Seq Scan N/A -
#70 Seq Scan N/A -
#68 Seq Scan N/A -
#66 Seq Scan N/A -
#64 Seq Scan N/A -
#57 Seq Scan N/A -
#55 Seq Scan N/A -
#53 Seq Scan N/A -
#48 Seq Scan N/A -
#46 Seq Scan N/A -
#44 Seq Scan N/A -
#42 Seq Scan N/A -
#37 Seq Scan N/A -
#27 Seq Scan N/A -
#25 Seq Scan N/A -
#23 Seq Scan N/A -
#15 Seq Scan N/A -
Hash 40 N/A -
#167 Hash N/A -
#162 Hash N/A -
#160 Hash N/A -
#152 Hash N/A -
#150 Hash N/A -
#148 Hash N/A -
#144 Hash N/A -
#142 Hash N/A -
#130 Hash N/A -
#128 Hash N/A -
#126 Hash N/A -
#124 Hash N/A -
#122 Hash N/A -
#116 Hash N/A -
#114 Hash N/A -
#112 Hash N/A -
#110 Hash N/A -
#107 Hash N/A -
#102 Hash N/A -
#100 Hash N/A -
#91 Hash N/A -
#89 Hash N/A -
#87 Hash N/A -
#85 Hash N/A -
#80 Hash N/A -
#75 Hash N/A -
#69 Hash N/A -
#67 Hash N/A -
#65 Hash N/A -
#56 Hash N/A -
#54 Hash N/A -
#52 Hash N/A -
#47 Hash N/A -
#45 Hash N/A -
#43 Hash N/A -
#38 Hash N/A -
#28 Hash N/A -
#26 Hash N/A -
#24 Hash N/A -
#16 Hash N/A -
Subquery Scan 3 N/A -
#153 Subquery Scan N/A -
#131 Subquery Scan N/A -
#29 Subquery Scan N/A -
Gather 5 N/A -
#156 Gather N/A -
#134 Gather N/A -
#76 Gather N/A -
#60 Gather N/A -
#32 Gather N/A -
Nested Loop 4 N/A -
#138 Nested Loop N/A -
#137 Nested Loop N/A -
#35 Nested Loop N/A -
#33 Nested Loop N/A -
Nested Loop Join 1 N/A -
#34 Nested Loop Join N/A -
Index Only Scan 2 N/A -
#51 Index Only Scan N/A -
#49 Index Only Scan N/A -
Materialize 1 N/A -
#94 Materialize N/A -
WindowAgg 1 N/A -
#154 WindowAgg N/A -
Index Count Time
recording_idx_gid 1 N/A -
#11 Index Scan N/A -
artist_credit_pkey 1 N/A -
#49 Index Only Scan N/A -
url_pkey 1 N/A -
#50 Index Scan N/A -
recording_idx_artist_credit 1 N/A -
#51 Index Only Scan N/A -
canonical_musicbrainz_data_idx_recording_mbid 1 N/A -
#93 Index Scan N/A -
recording_pkey 1 N/A -
#146 Index Scan N/A -
artist_pkey 1 N/A -
#147 Index Scan N/A -
release_pkey 1 N/A -
#165 Index Scan N/A -
cover_art_idx_release 1 N/A -
#166 Index Scan N/A -