From 1c9bcb6738cd0bfbcbdc284103d6c02288ccbec6 Mon Sep 17 00:00:00 2001 From: Simeon Widdis Date: Mon, 8 Sep 2025 16:42:10 +0000 Subject: [PATCH 1/7] top and head: allow limit keywords Signed-off-by: Simeon Widdis --- ppl/src/main/antlr/OpenSearchPPLParser.g4 | 5 ++-- .../opensearch/sql/ppl/AstPlanningTest.java | 25 +++++++++++++++++ .../sql/ppl/parser/AstBuilderTest.java | 12 ++------ .../sql/ppl/parser/AstEquivalenceTest.java | 28 +++++++++++++++++++ .../sql/ppl/utils/SPathRewriteTest.java | 16 ++--------- 5 files changed, 60 insertions(+), 26 deletions(-) create mode 100644 ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java create mode 100644 ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java diff --git a/ppl/src/main/antlr/OpenSearchPPLParser.g4 b/ppl/src/main/antlr/OpenSearchPPLParser.g4 index 2a7677cd5e3..1bce338d85c 100644 --- a/ppl/src/main/antlr/OpenSearchPPLParser.g4 +++ b/ppl/src/main/antlr/OpenSearchPPLParser.g4 @@ -198,7 +198,7 @@ evalCommand ; headCommand - : HEAD (number = integerLiteral)? (FROM from = integerLiteral)? + : HEAD ((LIMIT EQUAL)? number = integerLiteral)? (FROM from = integerLiteral)? ; binCommand @@ -232,7 +232,7 @@ logSpanValue ; topCommand - : TOP (number = integerLiteral)? (COUNTFIELD EQUAL countfield = stringLiteral)? (SHOWCOUNT EQUAL showcount = booleanLiteral)? fieldList (byClause)? + : TOP ((LIMIT EQUAL)? number = integerLiteral)? (COUNTFIELD EQUAL countfield = stringLiteral)? (SHOWCOUNT EQUAL showcount = booleanLiteral)? fieldList (byClause)? ; rareCommand @@ -1295,6 +1295,7 @@ keywordsCanBeId | FREQUENCY_THRESHOLD_PERCENTAGE | MAX_SAMPLE_COUNT | BUFFER_LIMIT + | LIMIT | WITH | REGEX | PUNCT diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java new file mode 100644 index 00000000000..5e784f5ed73 --- /dev/null +++ b/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java @@ -0,0 +1,25 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache 2.0 + */ + +package org.opensearch.sql.ppl; + +import org.mockito.Mockito; +import org.opensearch.sql.ast.Node; +import org.opensearch.sql.common.setting.Settings; +import org.opensearch.sql.ppl.antlr.PPLSyntaxParser; +import org.opensearch.sql.ppl.parser.AstBuilder; + +/** + * Base class for tests for the AST query planner. + */ +public class AstPlanningTest { + public final Settings settings = Mockito.mock(Settings.class); + public final PPLSyntaxParser parser = new PPLSyntaxParser(); + + public Node plan(String query) { + AstBuilder astBuilder = new AstBuilder(query, settings); + return astBuilder.visit(parser.parse(query)); + } +} diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java index 3085a4f8185..12ffa6b7e98 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java @@ -76,17 +76,14 @@ import org.opensearch.sql.common.antlr.SyntaxCheckException; import org.opensearch.sql.common.setting.Settings; import org.opensearch.sql.common.setting.Settings.Key; +import org.opensearch.sql.ppl.AstPlanningTest; import org.opensearch.sql.ppl.antlr.PPLSyntaxParser; import org.opensearch.sql.utils.SystemIndexUtils; -public class AstBuilderTest { +public class AstBuilderTest extends AstPlanningTest { @Rule public ExpectedException exceptionRule = ExpectedException.none(); - private final PPLSyntaxParser parser = new PPLSyntaxParser(); - - private final Settings settings = Mockito.mock(Settings.class); - @Test public void testSearchCommand() { assertEqual( @@ -1065,11 +1062,6 @@ protected void assertEqual(String query, String expected) { assertEqual(query, expectedPlan); } - private Node plan(String query) { - AstBuilder astBuilder = new AstBuilder(query, settings); - return astBuilder.visit(parser.parse(query)); - } - private String mappingTable(String indexName) { return SystemIndexUtils.mappingTable(indexName, PPL_SPEC); } diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java new file mode 100644 index 00000000000..e4af68ca2f9 --- /dev/null +++ b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java @@ -0,0 +1,28 @@ +/* + * Copyright OpenSearch Contributors + * SPDX-License-Identifier: Apache 2.0 + */ + +package org.opensearch.sql.ppl.parser; + +import org.junit.Test; +import org.opensearch.sql.ppl.AstPlanningTest; + +import static org.junit.Assert.assertEquals; + +public class AstEquivalenceTest extends AstPlanningTest { + @Test + public void testSpathArgumentDeshuffle() { + assertEquals(plan("source = t | spath path=a input=a"), plan("source = t | spath input=a a")); + } + + @Test + public void testHeadLimitEquivalent() { + assertEquals(plan("source = t | head limit=50"), plan("source = t | head 50")); + } + + @Test + public void testTopLimitEquivalent() { + assertEquals(plan("source = t | top limit=50 field_name"), plan("source = t | top 50 field_name")); + } +} diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java index e97fb51ea90..4a3ea46b8bd 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java @@ -20,18 +20,11 @@ import org.opensearch.sql.ast.tree.Eval; import org.opensearch.sql.ast.tree.SPath; import org.opensearch.sql.common.setting.Settings; +import org.opensearch.sql.ppl.AstPlanningTest; import org.opensearch.sql.ppl.antlr.PPLSyntaxParser; import org.opensearch.sql.ppl.parser.AstBuilder; -public class SPathRewriteTest { - private final Settings settings = Mockito.mock(Settings.class); - private final PPLSyntaxParser parser = new PPLSyntaxParser(); - - private Node plan(String query) { - AstBuilder astBuilder = new AstBuilder(query, settings); - return astBuilder.visit(parser.parse(query)); - } - +public class SPathRewriteTest extends AstPlanningTest { // Control test to make sure something fundamental hasn't changed about the json_extract parsing @Test public void testEvalControl() { @@ -59,9 +52,4 @@ public void testSpathMissingInputArgumentHandling() { public void testSpathMissingPathArgumentHandling() { plan("source = t | spath input=a output=a"); } - - @Test - public void testSpathArgumentDeshuffle() { - assertEquals(plan("source = t | spath path=a input=a"), plan("source = t | spath input=a a")); - } } From a42adf78b68839520059e98f02165e33bb48e22b Mon Sep 17 00:00:00 2001 From: Simeon Widdis Date: Mon, 8 Sep 2025 16:44:43 +0000 Subject: [PATCH 2/7] Add docs Signed-off-by: Simeon Widdis --- docs/user/ppl/cmd/head.rst | 1 + docs/user/ppl/cmd/top.rst | 1 + 2 files changed, 2 insertions(+) diff --git a/docs/user/ppl/cmd/head.rst b/docs/user/ppl/cmd/head.rst index cd4aed5a54d..67c49fd0d55 100644 --- a/docs/user/ppl/cmd/head.rst +++ b/docs/user/ppl/cmd/head.rst @@ -19,6 +19,7 @@ Syntax head [] [from ] * : optional integer. number of results to return. **Default:** 10 + * For readability or convenience, this can be prefixed by `limit=`. * : integer after optional ``from``. number of results to skip. **Default:** 0 Example 1: Get first 10 results diff --git a/docs/user/ppl/cmd/top.rst b/docs/user/ppl/cmd/top.rst index e6df0455a2f..f3770387642 100644 --- a/docs/user/ppl/cmd/top.rst +++ b/docs/user/ppl/cmd/top.rst @@ -21,6 +21,7 @@ top [N] [by-clause] top [N] [top-options] [by-clause] ``(available from 3.1.0+)`` * N: number of results to return. **Default**: 10 + * For readability or convenience, this can be prefixed by `limit=`. * field-list: mandatory. comma-delimited list of field names. * by-clause: optional. one or more fields to group the results by. * top-options: optional. options for the top command. Supported syntax is [countfield=] [showcount=]. From 81761bcf17b8e7ec3dfa8428484c26c2083ddca1 Mon Sep 17 00:00:00 2001 From: Simeon Widdis Date: Mon, 8 Sep 2025 21:51:46 +0000 Subject: [PATCH 3/7] Fix style + Ryan's comments Signed-off-by: Simeon Widdis --- .../opensearch/sql/ppl/AstPlanningTest.java | 16 +++++----- .../sql/ppl/parser/AstBuilderTest.java | 3 -- .../sql/ppl/parser/AstEquivalenceTest.java | 29 ++++++++++--------- .../sql/ppl/utils/SPathRewriteTest.java | 5 ---- 4 files changed, 22 insertions(+), 31 deletions(-) diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java index 5e784f5ed73..4cc9adb03fc 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java @@ -11,15 +11,13 @@ import org.opensearch.sql.ppl.antlr.PPLSyntaxParser; import org.opensearch.sql.ppl.parser.AstBuilder; -/** - * Base class for tests for the AST query planner. - */ +/** Base class for tests for the AST query planner. */ public class AstPlanningTest { - public final Settings settings = Mockito.mock(Settings.class); - public final PPLSyntaxParser parser = new PPLSyntaxParser(); + protected final Settings settings = Mockito.mock(Settings.class); + protected final PPLSyntaxParser parser = new PPLSyntaxParser(); - public Node plan(String query) { - AstBuilder astBuilder = new AstBuilder(query, settings); - return astBuilder.visit(parser.parse(query)); - } + protected Node plan(String query) { + AstBuilder astBuilder = new AstBuilder(query, settings); + return astBuilder.visit(parser.parse(query)); + } } diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java index 12ffa6b7e98..efd29a64430 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java @@ -60,7 +60,6 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import org.mockito.Mockito; import org.opensearch.sql.ast.Node; import org.opensearch.sql.ast.dsl.AstDSL; import org.opensearch.sql.ast.expression.DataType; @@ -74,10 +73,8 @@ import org.opensearch.sql.ast.tree.ML; import org.opensearch.sql.ast.tree.RareTopN.CommandType; import org.opensearch.sql.common.antlr.SyntaxCheckException; -import org.opensearch.sql.common.setting.Settings; import org.opensearch.sql.common.setting.Settings.Key; import org.opensearch.sql.ppl.AstPlanningTest; -import org.opensearch.sql.ppl.antlr.PPLSyntaxParser; import org.opensearch.sql.utils.SystemIndexUtils; public class AstBuilderTest extends AstPlanningTest { diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java index e4af68ca2f9..dfe183b82b1 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java @@ -5,24 +5,25 @@ package org.opensearch.sql.ppl.parser; +import static org.junit.Assert.assertEquals; + import org.junit.Test; import org.opensearch.sql.ppl.AstPlanningTest; -import static org.junit.Assert.assertEquals; - public class AstEquivalenceTest extends AstPlanningTest { - @Test - public void testSpathArgumentDeshuffle() { - assertEquals(plan("source = t | spath path=a input=a"), plan("source = t | spath input=a a")); - } + @Test + public void testSpathArgumentDeshuffle() { + assertEquals(plan("source = t | spath path=a input=a"), plan("source = t | spath input=a a")); + } - @Test - public void testHeadLimitEquivalent() { - assertEquals(plan("source = t | head limit=50"), plan("source = t | head 50")); - } + @Test + public void testHeadLimitEquivalent() { + assertEquals(plan("source = t | head limit=50"), plan("source = t | head 50")); + } - @Test - public void testTopLimitEquivalent() { - assertEquals(plan("source = t | top limit=50 field_name"), plan("source = t | top 50 field_name")); - } + @Test + public void testTopLimitEquivalent() { + assertEquals( + plan("source = t | top limit=50 field_name"), plan("source = t | top 50 field_name")); + } } diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java index 4a3ea46b8bd..e39dc0ad525 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java @@ -15,14 +15,9 @@ import static org.opensearch.sql.ast.dsl.AstDSL.stringLiteral; import org.junit.Test; -import org.mockito.Mockito; -import org.opensearch.sql.ast.Node; import org.opensearch.sql.ast.tree.Eval; import org.opensearch.sql.ast.tree.SPath; -import org.opensearch.sql.common.setting.Settings; import org.opensearch.sql.ppl.AstPlanningTest; -import org.opensearch.sql.ppl.antlr.PPLSyntaxParser; -import org.opensearch.sql.ppl.parser.AstBuilder; public class SPathRewriteTest extends AstPlanningTest { // Control test to make sure something fundamental hasn't changed about the json_extract parsing From b080a6174d37dfbe287dc6f0bc730f31993559fb Mon Sep 17 00:00:00 2001 From: Simeon Widdis Date: Tue, 9 Sep 2025 20:54:04 +0000 Subject: [PATCH 4/7] Update docs Signed-off-by: Simeon Widdis --- docs/user/ppl/cmd/head.rst | 8 +++++++- docs/user/ppl/cmd/top.rst | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/docs/user/ppl/cmd/head.rst b/docs/user/ppl/cmd/head.rst index 67c49fd0d55..058996e8373 100644 --- a/docs/user/ppl/cmd/head.rst +++ b/docs/user/ppl/cmd/head.rst @@ -8,6 +8,12 @@ head :local: :depth: 2 +Version Information +----------------- +.. versionadded:: 1.0.0 + +.. versionchanged:: 3.3.0 + Added support for the `limit=` argument name. Description ============ @@ -16,7 +22,7 @@ Description Syntax ============ -head [] [from ] +head [limit=][] [from ] * : optional integer. number of results to return. **Default:** 10 * For readability or convenience, this can be prefixed by `limit=`. diff --git a/docs/user/ppl/cmd/top.rst b/docs/user/ppl/cmd/top.rst index f3770387642..f8bf795725b 100644 --- a/docs/user/ppl/cmd/top.rst +++ b/docs/user/ppl/cmd/top.rst @@ -8,6 +8,12 @@ top :local: :depth: 2 +Version Information +----------------- +.. versionadded:: 1.0.0 + +.. versionchanged:: 3.3.0 + Added support for the `limit=` argument name. Description ============ @@ -18,7 +24,7 @@ Syntax ============ top [N] [by-clause] -top [N] [top-options] [by-clause] ``(available from 3.1.0+)`` +top [limit=][N] [top-options] [by-clause] ``(available from 3.1.0+)`` * N: number of results to return. **Default**: 10 * For readability or convenience, this can be prefixed by `limit=`. From 98f5343a3249d4f895b5c9a8e5eae08015e2b366 Mon Sep 17 00:00:00 2001 From: Simeon Widdis Date: Tue, 9 Sep 2025 20:59:19 +0000 Subject: [PATCH 5/7] Fix version header type Signed-off-by: Simeon Widdis --- docs/user/ppl/cmd/head.rst | 2 +- docs/user/ppl/cmd/top.rst | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/user/ppl/cmd/head.rst b/docs/user/ppl/cmd/head.rst index 058996e8373..f40db821a56 100644 --- a/docs/user/ppl/cmd/head.rst +++ b/docs/user/ppl/cmd/head.rst @@ -9,7 +9,7 @@ head :depth: 2 Version Information ------------------ +============ .. versionadded:: 1.0.0 .. versionchanged:: 3.3.0 diff --git a/docs/user/ppl/cmd/top.rst b/docs/user/ppl/cmd/top.rst index f8bf795725b..a9eedddb1e2 100644 --- a/docs/user/ppl/cmd/top.rst +++ b/docs/user/ppl/cmd/top.rst @@ -9,7 +9,7 @@ top :depth: 2 Version Information ------------------ +============ .. versionadded:: 1.0.0 .. versionchanged:: 3.3.0 From 5dc69ad69a07dc080edea06891e0bad55b653eb7 Mon Sep 17 00:00:00 2001 From: Simeon Widdis Date: Tue, 9 Sep 2025 21:02:52 +0000 Subject: [PATCH 6/7] Maybe with no version header it's better? Signed-off-by: Simeon Widdis --- docs/user/ppl/cmd/head.rst | 3 --- docs/user/ppl/cmd/top.rst | 3 --- 2 files changed, 6 deletions(-) diff --git a/docs/user/ppl/cmd/head.rst b/docs/user/ppl/cmd/head.rst index f40db821a56..45952c635f6 100644 --- a/docs/user/ppl/cmd/head.rst +++ b/docs/user/ppl/cmd/head.rst @@ -8,10 +8,7 @@ head :local: :depth: 2 -Version Information -============ .. versionadded:: 1.0.0 - .. versionchanged:: 3.3.0 Added support for the `limit=` argument name. diff --git a/docs/user/ppl/cmd/top.rst b/docs/user/ppl/cmd/top.rst index a9eedddb1e2..5d7a573365c 100644 --- a/docs/user/ppl/cmd/top.rst +++ b/docs/user/ppl/cmd/top.rst @@ -8,10 +8,7 @@ top :local: :depth: 2 -Version Information -============ .. versionadded:: 1.0.0 - .. versionchanged:: 3.3.0 Added support for the `limit=` argument name. From d70dc7725a1df6cda532bcebf986e4c84fb6f7e5 Mon Sep 17 00:00:00 2001 From: Simeon Widdis Date: Fri, 19 Sep 2025 17:18:24 +0000 Subject: [PATCH 7/7] Move some stuff around Signed-off-by: Simeon Widdis --- ppl/src/main/antlr/OpenSearchPPLParser.g4 | 2 +- .../ppl/{AstPlanningTest.java => AstPlanningTestBase.java} | 2 +- .../java/org/opensearch/sql/ppl/parser/AstBuilderTest.java | 4 ++-- .../org/opensearch/sql/ppl/parser/AstEquivalenceTest.java | 4 ++-- .../SPathRewriteTest.java => rewrite/SpathRewriteTest.java} | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) rename ppl/src/test/java/org/opensearch/sql/ppl/{AstPlanningTest.java => AstPlanningTestBase.java} (95%) rename ppl/src/test/java/org/opensearch/sql/ppl/{utils/SPathRewriteTest.java => rewrite/SpathRewriteTest.java} (91%) diff --git a/ppl/src/main/antlr/OpenSearchPPLParser.g4 b/ppl/src/main/antlr/OpenSearchPPLParser.g4 index 6f1de0b4f74..0910b610d58 100644 --- a/ppl/src/main/antlr/OpenSearchPPLParser.g4 +++ b/ppl/src/main/antlr/OpenSearchPPLParser.g4 @@ -306,7 +306,7 @@ topCommand ; rareCommand - : RARE (number = integerLiteral)? (COUNTFIELD EQUAL countfield = stringLiteral)? (SHOWCOUNT EQUAL showcount = booleanLiteral)? fieldList (byClause)? + : RARE ((LIMIT EQUAL)? number = integerLiteral)? (COUNTFIELD EQUAL countfield = stringLiteral)? (SHOWCOUNT EQUAL showcount = booleanLiteral)? fieldList (byClause)? ; grokCommand diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTestBase.java similarity index 95% rename from ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java rename to ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTestBase.java index 4d720c84cb3..5f8261d6a9a 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/AstPlanningTestBase.java @@ -12,7 +12,7 @@ import org.opensearch.sql.ppl.parser.AstBuilder; /** Base class for tests for the AST query planner. */ -public class AstPlanningTest { +public class AstPlanningTestBase { protected final Settings settings = Mockito.mock(Settings.class); protected final PPLSyntaxParser parser = new PPLSyntaxParser(); diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java index 6375e4ab0f8..fd1bb87e01f 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstBuilderTest.java @@ -76,10 +76,10 @@ import org.opensearch.sql.ast.tree.RareTopN.CommandType; import org.opensearch.sql.common.antlr.SyntaxCheckException; import org.opensearch.sql.common.setting.Settings.Key; -import org.opensearch.sql.ppl.AstPlanningTest; +import org.opensearch.sql.ppl.AstPlanningTestBase; import org.opensearch.sql.utils.SystemIndexUtils; -public class AstBuilderTest extends AstPlanningTest { +public class AstBuilderTest extends AstPlanningTestBase { @Rule public ExpectedException exceptionRule = ExpectedException.none(); diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java index 9c589846df3..d0eb6dec25c 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/parser/AstEquivalenceTest.java @@ -8,9 +8,9 @@ import static org.junit.Assert.assertEquals; import org.junit.Test; -import org.opensearch.sql.ppl.AstPlanningTest; +import org.opensearch.sql.ppl.AstPlanningTestBase; -public class AstEquivalenceTest extends AstPlanningTest { +public class AstEquivalenceTest extends AstPlanningTestBase { @Test public void testSpathArgumentDeshuffle() { assertEquals(plan("source = t | spath path=a input=a"), plan("source = t | spath input=a a")); diff --git a/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java b/ppl/src/test/java/org/opensearch/sql/ppl/rewrite/SpathRewriteTest.java similarity index 91% rename from ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java rename to ppl/src/test/java/org/opensearch/sql/ppl/rewrite/SpathRewriteTest.java index e39dc0ad525..8b48ddc1db2 100644 --- a/ppl/src/test/java/org/opensearch/sql/ppl/utils/SPathRewriteTest.java +++ b/ppl/src/test/java/org/opensearch/sql/ppl/rewrite/SpathRewriteTest.java @@ -3,7 +3,7 @@ * SPDX-License-Identifier: Apache-2.0 */ -package org.opensearch.sql.ppl.utils; +package org.opensearch.sql.ppl.rewrite; import static org.junit.Assert.assertEquals; import static org.opensearch.sql.ast.dsl.AstDSL.eval; @@ -17,9 +17,9 @@ import org.junit.Test; import org.opensearch.sql.ast.tree.Eval; import org.opensearch.sql.ast.tree.SPath; -import org.opensearch.sql.ppl.AstPlanningTest; +import org.opensearch.sql.ppl.AstPlanningTestBase; -public class SPathRewriteTest extends AstPlanningTest { +public class SpathRewriteTest extends AstPlanningTestBase { // Control test to make sure something fundamental hasn't changed about the json_extract parsing @Test public void testEvalControl() {