### Elasticsearch Version

main @ 4de2ffa2bcf9eba0b8d09fb5f13c217598d025ee

### Installed Plugins

_No response_

### Java Version

openjdk version "17.0.8" 2023-07-18

### OS Version

Ubuntu 23.04

### Problem Description

- `MvExpandOperator` is [leaving behind unclosed input blocks](https://github.com/elastic/elasticsearch/blob/4de2ffa2bcf9eba0b8d09fb5f13c217598d025ee/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/operator/MvExpandOperatorTests.java#L137-L142). Should be closed by #100548
- `LimitOperator` is [leaving behind unclosed input blocks](https://github.com/elastic/elasticsearch/blob/4de2ffa2bcf9eba0b8d09fb5f13c217598d025ee/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/operator/LimitOperatorTests.java#L100-L105). #100465
- `FilterOperator` is [leaving behind unclosed input blocks](https://github.com/elastic/elasticsearch/blob/4de2ffa2bcf9eba0b8d09fb5f13c217598d025ee/x-pack/plugin/esql/compute/src/test/java/org/elasticsearch/compute/operator/FilterOperatorTests.java#L128-L134). Should be closed by https://github.com/elastic/elasticsearch/pull/100465

### Steps to Reproduce

Remove the overridden `canLeak` implementation from `MvExpandOperatorTests`, `LimitOperatorTests` or `FilterOperatorTests` and run them.

### Logs (if relevant)

_No response_
x-pack/plugin/esql/src/main/java/org/elasticsearch/xpack/esql/planner/LocalExecutionPlanner.java
);
        return source;
    }
    private PhysicalOperation planGrok(GrokExec grok, LocalExecutionPlannerContext context) {
        PhysicalOperation source = plan(grok.child(), context);
        Layout.Builder layoutBuilder = source.layout.builder();
        List<Attribute> extractedFields = grok.extractedFields();
        layoutBuilder.append(extractedFields);
        Map<String, Integer> fieldToPos = new HashMap<>(extractedFields.size());
        Map<String, ElementType> fieldToType = new HashMap<>(extractedFields.size());
        ElementType[] types = new ElementType[extractedFields.size()];
        for (int i = 0; i < extractedFields.size(); i++) {
            Attribute extractedField = extractedFields.get(i);
            ElementType type = toElementType(extractedField.dataType());
            fieldToPos.put(extractedField.name(), i);
            fieldToType.put(extractedField.name(), type);
            types[i] = type;
        }
        Layout layout = layoutBuilder.build();
        source = source.with(
            new ColumnExtractOperator.Factory(
                types,
                EvalMapper.toEvaluator(grok.inputExpression(), layout),
                () -> new GrokEvaluatorExtracter(grok.pattern().grok(), grok.pattern().pattern(), fieldToPos, fieldToType)
            ),
            layout
        );
        return source;
    }
    private PhysicalOperation planEnrich(EnrichExec enrich, LocalExecutionPlannerContext context) {