Parece que los índices de Gin se comportan bien. Si creo un índice de Gin en la columna de índices y luego cambio Join a
ON t.indexes @> jsonb_build_object('Id', c.indexes -> 'parentId')
Y el Dónde
WHERE t.indexes @> jsonb_build_object('Id', h.pid)
No es tan rápido como el índice de función pura, pero al menos se actualizará dinámicamente, y el plan de ejecución no tiene ese tipo innecesario
Se pueden realizar más mejoras de rendimiento agregando el indicador de índice de gin jsonb_path_ops