fn prune_and_annotate_dataflow_index_imports(
    dataflow: &mut DataflowDesc,
    indexes: &dyn IndexOracle,
    dataflow_metainfo: &mut DataflowMetainfo,
) -> Result<(), TransformError>
Expand description

Restricts the indexes imported by dataflow to only the ones it needs. It also adds to the DataflowMetainfo how each index will be used. It also annotates global Gets with whether they will be reads from Persist or an index, plus their index usage types.

The input dataflow should import all indexes belonging to all views/sources/tables it references.

The input plans should be normalized with NormalizeLets! Otherwise, we might find dangling ArrangeBys at the top of unused Let bindings.