diff --git a/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/JsonExtractAllFunctionIT.java b/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/JsonExtractAllFunctionIT.java index 61c14463da6..44997e0538e 100644 --- a/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/JsonExtractAllFunctionIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/JsonExtractAllFunctionIT.java @@ -5,46 +5,23 @@ package org.opensearch.sql.calcite.standalone; -import java.io.IOException; -import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import org.apache.calcite.plan.Contexts; -import org.apache.calcite.plan.RelTraitDef; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.type.RelDataType; -import org.apache.calcite.rex.RexBuilder; import org.apache.calcite.rex.RexNode; -import org.apache.calcite.schema.SchemaPlus; -import org.apache.calcite.sql.parser.SqlParser; import org.apache.calcite.sql.type.SqlTypeName; -import org.apache.calcite.tools.Frameworks; -import org.apache.calcite.tools.Programs; -import org.apache.calcite.tools.RelBuilder; import org.junit.jupiter.api.Test; -import org.opensearch.sql.calcite.CalcitePlanContext; -import org.opensearch.sql.calcite.SysLimit; -import org.opensearch.sql.calcite.utils.CalciteToolsHelper.OpenSearchRelRunners; -import org.opensearch.sql.executor.QueryType; import org.opensearch.sql.expression.function.BuiltinFunctionName; import org.opensearch.sql.expression.function.PPLFuncImpTable; -/** Integration test for internal function JSON_EXTRACT_ALL in Calcite PPL. */ -public class JsonExtractAllFunctionIT extends CalcitePPLIntegTestCase { +public class JsonExtractAllFunctionIT extends CalcitePPLRelNodeIntegTestCase { private static final String RESULT_FIELD = "result"; private static final String ID_FIELD = "id"; - TestContext context; - - @Override - public void init() throws IOException { - super.init(); - context = createTestContext(); - enableCalcite(); - } @Test public void testJsonExtractAllWithNullInput() throws Exception { @@ -310,62 +287,4 @@ public void testJsonExtractAllWithInvalidJson() throws Exception { assertEquals(1, map.size()); }); } - - @FunctionalInterface - private interface ResultVerifier { - void verify(ResultSet resultSet) throws SQLException; - } - - private static class TestContext { - final CalcitePlanContext planContext; - final RelBuilder relBuilder; - final RexBuilder rexBuilder; - - TestContext(CalcitePlanContext planContext, RelBuilder relBuilder, RexBuilder rexBuilder) { - this.planContext = planContext; - this.relBuilder = relBuilder; - this.rexBuilder = rexBuilder; - } - } - - private TestContext createTestContext() { - CalcitePlanContext planContext = createCalcitePlanContext(); - return new TestContext(planContext, planContext.relBuilder, planContext.rexBuilder); - } - - private void executeRelNodeAndVerify( - CalcitePlanContext planContext, RelNode relNode, ResultVerifier verifier) - throws SQLException { - try (PreparedStatement statement = OpenSearchRelRunners.run(planContext, relNode)) { - ResultSet resultSet = statement.executeQuery(); - verifier.verify(resultSet); - } - } - - private void verifyColumns(ResultSet resultSet, String... expectedColumnNames) - throws SQLException { - assertEquals(expectedColumnNames.length, resultSet.getMetaData().getColumnCount()); - - for (int i = 0; i < expectedColumnNames.length; i++) { - String expectedName = expectedColumnNames[i]; - String actualName = resultSet.getMetaData().getColumnName(i + 1); - assertEquals(expectedName, actualName); - } - } - - private CalcitePlanContext createCalcitePlanContext() { - // Create a Frameworks.ConfigBuilder similar to CalcitePPLAbstractTest - final SchemaPlus rootSchema = Frameworks.createRootSchema(true); - Frameworks.ConfigBuilder config = - Frameworks.newConfigBuilder() - .parserConfig(SqlParser.Config.DEFAULT) - .defaultSchema(rootSchema) - .traitDefs((List) null) - .programs(Programs.heuristicJoinOrder(Programs.RULE_SET, true, 2)); - - config.context(Contexts.of(RelBuilder.Config.DEFAULT)); - - return CalcitePlanContext.create( - config.build(), SysLimit.DEFAULT, QueryType.PPL); - } } diff --git a/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapAppendFunctionIT.java b/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapAppendFunctionIT.java index 9b9263a480b..a77c3270e3b 100644 --- a/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapAppendFunctionIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapAppendFunctionIT.java @@ -5,7 +5,6 @@ package org.opensearch.sql.calcite.standalone; -import java.io.IOException; import java.sql.ResultSet; import java.sql.SQLException; import java.util.List; @@ -23,13 +22,6 @@ public class MapAppendFunctionIT extends CalcitePPLRelNodeIntegTestCase { private static final String MAP_FIELD = "map"; private static final String ID_FIELD = "id"; - @Override - public void init() throws IOException { - super.init(); - context = createTestContext(); - enableCalcite(); - } - @Test public void testMapAppendWithNonOverlappingKeys() throws Exception { RexNode map1 = createMap("key1", "value1", "key2", "value2"); diff --git a/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapConcatFunctionIT.java b/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapConcatFunctionIT.java index d3d65b73065..5a7f6e18444 100644 --- a/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapConcatFunctionIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapConcatFunctionIT.java @@ -5,45 +5,19 @@ package org.opensearch.sql.calcite.standalone; -import java.io.IOException; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; -import java.util.List; import java.util.Map; -import org.apache.calcite.plan.Contexts; -import org.apache.calcite.plan.RelTraitDef; import org.apache.calcite.rel.RelNode; import org.apache.calcite.rel.type.RelDataType; -import org.apache.calcite.rex.RexBuilder; import org.apache.calcite.rex.RexNode; -import org.apache.calcite.schema.SchemaPlus; import org.apache.calcite.sql.fun.SqlStdOperatorTable; -import org.apache.calcite.sql.parser.SqlParser; -import org.apache.calcite.sql.type.SqlTypeName; -import org.apache.calcite.tools.Frameworks; -import org.apache.calcite.tools.Programs; -import org.apache.calcite.tools.RelBuilder; import org.junit.jupiter.api.Test; -import org.opensearch.sql.calcite.CalcitePlanContext; -import org.opensearch.sql.calcite.SysLimit; -import org.opensearch.sql.calcite.utils.CalciteToolsHelper.OpenSearchRelRunners; -import org.opensearch.sql.executor.QueryType; import org.opensearch.sql.expression.function.BuiltinFunctionName; import org.opensearch.sql.expression.function.PPLFuncImpTable; -public class MapConcatFunctionIT extends CalcitePPLIntegTestCase { +public class MapConcatFunctionIT extends CalcitePPLRelNodeIntegTestCase { private static final String MAP_FIELD = "map"; private static final String ID_FIELD = "id"; - TestContext context; - - @Override - public void init() throws IOException { - super.init(); - context = createTestContext(); - enableCalcite(); - } @Test public void testMapConcatWithNullValues() throws Exception { @@ -112,67 +86,4 @@ public void testMapConcat() throws Exception { assertEquals("value3", result.get("key3")); }); } - - private static class TestContext { - final CalcitePlanContext planContext; - final RelBuilder relBuilder; - final RexBuilder rexBuilder; - - TestContext(CalcitePlanContext planContext, RelBuilder relBuilder, RexBuilder rexBuilder) { - this.planContext = planContext; - this.relBuilder = relBuilder; - this.rexBuilder = rexBuilder; - } - } - - @FunctionalInterface - private interface ResultVerifier { - void verify(ResultSet resultSet) throws SQLException; - } - - private TestContext createTestContext() { - CalcitePlanContext planContext = createCalcitePlanContext(); - return new TestContext(planContext, planContext.relBuilder, planContext.rexBuilder); - } - - private RelDataType createMapType(RexBuilder rexBuilder) { - RelDataType stringType = rexBuilder.getTypeFactory().createSqlType(SqlTypeName.VARCHAR); - RelDataType anyType = rexBuilder.getTypeFactory().createSqlType(SqlTypeName.ANY); - return rexBuilder.getTypeFactory().createMapType(stringType, anyType); - } - - private void executeRelNodeAndVerify( - CalcitePlanContext planContext, RelNode relNode, ResultVerifier verifier) - throws SQLException { - try (PreparedStatement statement = OpenSearchRelRunners.run(planContext, relNode)) { - ResultSet resultSet = statement.executeQuery(); - verifier.verify(resultSet); - } - } - - private void verifyColumns(ResultSet resultSet, String... expectedColumnNames) - throws SQLException { - assertEquals(expectedColumnNames.length, resultSet.getMetaData().getColumnCount()); - - for (int i = 0; i < expectedColumnNames.length; i++) { - String expectedName = expectedColumnNames[i]; - String actualName = resultSet.getMetaData().getColumnName(i + 1); - assertEquals(expectedName, actualName); - } - } - - private CalcitePlanContext createCalcitePlanContext() { - // Create a Frameworks.ConfigBuilder similar to CalcitePPLAbstractTest - final SchemaPlus rootSchema = Frameworks.createRootSchema(true); - Frameworks.ConfigBuilder config = - Frameworks.newConfigBuilder() - .parserConfig(SqlParser.Config.DEFAULT) - .defaultSchema(rootSchema) - .traitDefs((List) null) - .programs(Programs.heuristicJoinOrder(Programs.RULE_SET, true, 2)); - - config.context(Contexts.of(RelBuilder.Config.DEFAULT)); - - return CalcitePlanContext.create(config.build(), SysLimit.DEFAULT, QueryType.PPL); - } } diff --git a/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapRemoveFunctionIT.java b/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapRemoveFunctionIT.java index 849ff18ce31..eeb006491b7 100644 --- a/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapRemoveFunctionIT.java +++ b/integ-test/src/test/java/org/opensearch/sql/calcite/standalone/MapRemoveFunctionIT.java @@ -5,7 +5,6 @@ package org.opensearch.sql.calcite.standalone; -import java.io.IOException; import java.sql.ResultSet; import java.sql.SQLException; import java.util.Map; @@ -22,13 +21,6 @@ public class MapRemoveFunctionIT extends CalcitePPLRelNodeIntegTestCase { private static final String MAP_FIELD = "map"; private static final String ID_FIELD = "id"; - @Override - public void init() throws IOException { - super.init(); - context = createTestContext(); - enableCalcite(); - } - @Test public void testMapRemoveWithNullMap() throws Exception { RelDataType mapType = createMapType(context.rexBuilder);