Right now filter aggregations run in "compatible" mode if the top level query is `bool: {filter: { match_all: {}}}}` - but this really just just `match_all` in disguise. We should just run in filter-by-filter mode here.
server/src/main/java/org/elasticsearch/common/Rounding.java
TimeIntervalRounding.this.toString()
                    );
                logger.debug(
                    "Expected to find the rounding in 100 iterations but didn't for {} using {}",
                    utcMillis,
                    TimeIntervalRounding.this.toString()
                );
                return round(from);
            }
            @Override
            public String toString() {
                return TimeIntervalRounding.this + "[java.time]";
            }
        }
    }
    static class OffsetRounding extends Rounding {
        static final byte ID = 3;
        private final Rounding delegate;
        private final long offset;
        OffsetRounding(Rounding delegate, long offset) {
            this.delegate = delegate;
            this.offset = offset;
        }
        OffsetRounding(StreamInput in) throws IOException {
            
            delegate = Rounding.read(in);
            offset = in.readZLong();
        }
        @Override
        public void innerWriteTo(StreamOutput out) throws IOException {