### 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/compute/src/test/java/org/elasticsearch/compute/operator/OperatorTestCase.java
operator.finish();
        }
        assertThat(driverContext.blockFactory().breaker().getUsed(), equalTo(0L));
    }
    protected final List<Page> drive(Operator operator, Iterator<Page> input, DriverContext driverContext) {
        return drive(List.of(operator), input, driverContext);
    }
    protected final List<Page> drive(List<Operator> operators, Iterator<Page> input, DriverContext driverContext) {
        List<Page> results = new ArrayList<>();
        boolean success = false;
        try (
            Driver d = new Driver(
                driverContext,
                new CannedSourceOperator(input),
                operators,
                new ResultPageSinkOperator(results::add),
                () -> {}
            )
        ) {
            runDriver(d);
            success = true;
        } finally {
            if (success == false) {
                Releasables.closeExpectNoException(Releasables.wrap(() -> Iterators.map(results.iterator(), p -> p::releaseBlocks)));
            }
        }
        return results;
    }
    public static void runDriver(Driver driver) {
        runDriver(List.of(driver));