Vypadá to, že indexy Gin se chovají dobře. Pokud vytvořím index Gin ve sloupci indexy a poté změním Join na
ON t.indexes @> jsonb_build_object('Id', c.indexes -> 'parentId')
A kam vést
WHERE t.indexes @> jsonb_build_object('Id', h.pid)
Není tak rychlý jako čistě funkční index, ale alespoň se bude dynamicky aktualizovat a plán provádění nemá takové zbytečné řazení
Další vylepšení výkonu lze provést přidáním příznaku gin indexu jsonb_path_ops