public PlanOptimizersFactory(Metadata metadata, SqlParser sqlParser, SplitManager splitManager, IndexManager indexManager, FeaturesConfig featuresConfig)
{
ImmutableList.Builder<PlanOptimizer> builder = ImmutableList.builder();
builder.add(new ImplementSampleAsFilter(),
new CanonicalizeExpressions(),
new SimplifyExpressions(metadata, sqlParser),
new UnaliasSymbolReferences(),
new PruneRedundantProjections(),
new SetFlatteningOptimizer(),
new LimitPushDown(), // Run the LimitPushDown after flattening set operators to make it easier to do the set flattening