Parece que os índices Gin se comportam bem. Se eu criar um índice Gin na coluna de índices e, em seguida, alterar o Join para
ON t.indexes @> jsonb_build_object('Id', c.indexes -> 'parentId')
E o Onde
WHERE t.indexes @> jsonb_build_object('Id', h.pid)
Não é tão rápido quanto o índice puramente de função, mas pelo menos será atualizado dinamicamente, e o plano de execução não possui essa classificação desnecessária
Outras melhorias de desempenho podem ser feitas adicionando o sinalizador de índice de gin jsonb_path_ops