This is an automated email from the ASF dual-hosted git repository.
amashenkov pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git
The following commit(s) were added to refs/heads/main by this push:
new 214d1debfd IGNITE-21453 Fix force index hint test (#3175)
214d1debfd is described below
commit 214d1debfd2d201e4db9390926304785cede3a79
Author: Andrey Novikov <[email protected]>
AuthorDate: Thu Feb 8 21:34:02 2024 +0700
IGNITE-21453 Fix force index hint test (#3175)
---
.../planner/hints/ForceIndexHintPlannerTest.java | 19 ++++++++++++-------
1 file changed, 12 insertions(+), 7 deletions(-)
diff --git
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/hints/ForceIndexHintPlannerTest.java
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/hints/ForceIndexHintPlannerTest.java
index c2b383095d..ffac3a3649 100644
---
a/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/hints/ForceIndexHintPlannerTest.java
+++
b/modules/sql-engine/src/test/java/org/apache/ignite/internal/sql/engine/planner/hints/ForceIndexHintPlannerTest.java
@@ -45,7 +45,7 @@ public class ForceIndexHintPlannerTest extends
AbstractPlannerTest {
@BeforeAll
public static void setup() {
SCHEMA = createSchemaFrom(
- createSimpleTable(TBL1, 1)
+ createSimpleTable(TBL1, 100)
.andThen(addHashIndex("ID"))
.andThen(addSortIndex("VAL1"))
.andThen(addSortIndex("VAL2", "VAL3"))
@@ -62,16 +62,17 @@ public class ForceIndexHintPlannerTest extends
AbstractPlannerTest {
public void testWrongIndexName() throws Exception {
var sql = "SELECT /*+ FORCE_INDEX({}) */ * FROM TBL1 WHERE id = 0 AND
val1 = 'v'";
- assertPlan(format(sql, "'tbl1_idx_id'"), SCHEMA, isTableScan(TBL1));
- assertPlan(format(sql, "\"tbl1_idx_id\""), SCHEMA, isTableScan(TBL1));
- assertPlan(format(sql, "'unexisting', 'tbl1_idx_id'"), SCHEMA,
isTableScan(TBL1));
- assertPlan(format(sql, "\"unexisting\", \"tbl1_idx_id\""), SCHEMA,
isTableScan(TBL1));
+ assertNoCertainIndex(format(sql, "'tbl1_idx_id'"), TBL1,
"TBL1_IDX_ID");
+ assertNoCertainIndex(format(sql, "\"tbl1_idx_id\""), TBL1,
"TBL1_IDX_ID");
+ assertNoCertainIndex(format(sql, "'unexisting', 'tbl1_idx_id'"), TBL1,
"UNEXISTING");
+ assertNoCertainIndex(format(sql, "\"unexisting\", \"tbl1_idx_id\""),
TBL1, "UNEXISTING");
}
@Test
public void testSingleTable() throws Exception {
var sql = "SELECT /*+ FORCE_INDEX({}) */ * FROM TBL1 WHERE val2 = 'v'
AND val3 = 'v'";
+ assertCertainIndex(format(sql, ""), TBL1, "IDX_VAL2_VAL3");
assertCertainIndex(format(sql, "unexisting, idx_val3"), TBL1,
"IDX_VAL3");
assertCertainIndex(format(sql, "UNEXISTING, IDX_VAL3"), TBL1,
"IDX_VAL3");
assertCertainIndex(format(sql, "'UNEXISTING', 'IDX_VAL3'"), TBL1,
"IDX_VAL3");
@@ -88,13 +89,13 @@ public class ForceIndexHintPlannerTest extends
AbstractPlannerTest {
public void testSubquery() throws Exception {
var sql1 = "SELECT /*+ FORCE_INDEX({}) */ * FROM TBL1 t2, (SELECT *
FROM TBL1 WHERE val2='v' AND val3='v') t1 WHERE t2.val2='v'";
- assertPlan(format(sql1, ""), SCHEMA,
nodeOrAnyChild(isTableScan(TBL1)));
+ assertCertainIndex(format(sql1, ""), TBL1, "IDX_VAL2_VAL3");
assertCertainIndex(format(sql1, "IDX_VAL2_VAL3"), TBL1,
"IDX_VAL2_VAL3");
assertCertainIndex(format(sql1, "IDX_VAL3"), TBL1, "IDX_VAL3");
var sql2 = "SELECT /*+ FORCE_INDEX({}) */ * FROM TBL2 t2 WHERE t2.val2
= (SELECT val2 from TBL1 WHERE val2='v' AND val3='v')";
- assertPlan(format(sql2, ""), SCHEMA,
nodeOrAnyChild(isTableScan(TBL1)));
+ assertCertainIndex(format(sql2, ""), TBL1, "IDX_VAL2_VAL3");
assertCertainIndex(format(sql2, "IDX_VAL2_VAL3"), TBL1,
"IDX_VAL2_VAL3");
assertCertainIndex(format(sql2, "IDX_VAL3"), TBL1, "IDX_VAL3");
}
@@ -169,4 +170,8 @@ public class ForceIndexHintPlannerTest extends
AbstractPlannerTest {
private void assertCertainIndex(String sql, String tblName, String
idxName) throws Exception {
assertPlan(sql, SCHEMA, nodeOrAnyChild(isIndexScan(tblName, idxName)));
}
+
+ private void assertNoCertainIndex(String sql, String tblName, String
idxName) throws Exception {
+ assertPlan(sql, SCHEMA, nodeOrAnyChild(isIndexScan(tblName,
idxName)).negate());
+ }
}