From 81f2f8417742eb9adbb0dd72faa03a186273d4cf Mon Sep 17 00:00:00 2001 From: Costin Leau Date: Fri, 18 Sep 2020 11:22:44 +0300 Subject: [PATCH] EQL: Allow requests with size 0 (#62537) The purpose for this change is to allow validation of queries without having to actually execute them. The optimizer already picks up this case. Fix #62494 (cherry picked from commit 675889559b2f96a0c1faa6fc84fd537148ba2cce) --- .../client/eql/EqlSearchRequest.java | 10 +++++---- .../client/eql/EqlSearchRequestTests.java | 22 +++++++++++-------- .../test/eql/CommonEqlRestTestCase.java | 5 ++--- .../xpack/eql/action/EqlSearchRequest.java | 7 ++++-- .../eql/action/EqlSearchRequestTests.java | 1 + 5 files changed, 27 insertions(+), 18 deletions(-) diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/eql/EqlSearchRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/eql/EqlSearchRequest.java index 10cda684ae2..1258e674f1a 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/eql/EqlSearchRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/eql/EqlSearchRequest.java @@ -157,10 +157,10 @@ public class EqlSearchRequest implements Validatable, ToXContentObject { } public EqlSearchRequest size(int size) { - this.size = size; - if (fetchSize <= 0) { - throw new IllegalArgumentException("size must be greater than 0"); + if (size < 0) { + throw new IllegalArgumentException("size must be greater than or equal to 0"); } + this.size = size; return this; } @@ -169,10 +169,10 @@ public class EqlSearchRequest implements Validatable, ToXContentObject { } public EqlSearchRequest fetchSize(int fetchSize) { - this.fetchSize = fetchSize; if (fetchSize < 2) { throw new IllegalArgumentException("fetch size must be greater than 1"); } + this.fetchSize = fetchSize; return this; } @@ -226,6 +226,8 @@ public class EqlSearchRequest implements Validatable, ToXContentObject { Arrays.equals(indices, that.indices) && Objects.equals(indicesOptions, that.indicesOptions) && Objects.equals(filter, that.filter) && + Objects.equals(size, that.size) && + Objects.equals(fetchSize, that.fetchSize) && Objects.equals(timestampField, that.timestampField) && Objects.equals(tiebreakerField, that.tiebreakerField) && Objects.equals(eventCategoryField, that.eventCategoryField) && diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java index 9764fbc1973..56bc464eec0 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java @@ -35,30 +35,33 @@ public class EqlSearchRequestTests extends AbstractRequestTestCase