code: @Override
      protected ImmutableMap<Class<? extends QueryOptimizationProposal>, Class<? extends ProposalExecutor>>
      generateOptimizationConfigurationMap() {
          ImmutableMap.Builder<Class<? extends QueryOptimizationProposal>, Class<? extends ProposalExecutor>>
                  internalExecutorMapBuilder = ImmutableMap.builder();
          internalExecutorMapBuilder.putAll(super.generateOptimizationConfigurationMap());
  
          internalExecutorMapBuilder.put(InnerJoinOptimizationProposal.class, InnerJoinExecutor.class);
          internalExecutorMapBuilder.put(SubstitutionPropagationProposal.class, SubstitutionPropagationExecutor.class);
          internalExecutorMapBuilder.put(PushDownBooleanExpressionProposal.class, PushDownBooleanExpressionExecutor.class);
          internalExecutorMapBuilder.put(PushUpBooleanExpressionProposal.class, PushUpBooleanExpressionExecutor.class);
          internalExecutorMapBuilder.put(UnionLiftProposal.class, UnionLiftExecutor.class);
          internalExecutorMapBuilder.put(LeftJoinOptimizationProposal.class, LeftJoinExecutor.class);
          internalExecutorMapBuilder.put(ProjectionShrinkingProposal.class, ProjectionShrinkingExecutor.class);
          internalExecutorMapBuilder.put(FlattenUnionProposal.class, FlattenUnionExecutor.class);
          internalExecutorMapBuilder.put(ConstructionNodeCleaningProposal.class, ConstructionNodeCleaningExecutor.class);
          return internalExecutorMapBuilder.build();
      }
docs: Can be overloaded by sub-classes