Evgeny Stanilovsky created IGNITE-28598:
-------------------------------------------
Summary: Calcite engine. Indexes from NO_INDEX hint still can be
used in plan
Key: IGNITE-28598
URL: https://issues.apache.org/jira/browse/IGNITE-28598
Project: Ignite
Issue Type: Improvement
Affects Versions: 2.17, 2.18
Reporter: Evgeny Stanilovsky
Fix For: 2.19
Indexes from NO_INDEX hint still can be fount in execution plan.
For example, if we try to involve only "T1_IDX" scan:
{noformat}
@Test
public void testNoIndexHint() {
executeSql("CREATE TABLE t1(i2 INTEGER, i3 INTEGER)");
for (int i = 0; i < 100; ++i)
executeSql("INSERT INTO t1 VALUES (?, ?)", i, i);
executeSql("CREATE INDEX t1_idx ON t1(i3)");
assertQuery("SELECT /*+ NO_INDEX(_key_PK),
DISABLE_RULE('LogicalTableScanConverterRule') */ i3 FROM t1 where i2=2 or i3=2")
.matches(QueryChecker.containsIndexScan("PUBLIC", "T1", "T1_IDX"))
.check();
}
{noformat}
It will fail.
Seems it`s due to case sensitivity comparison bug present in:
org.apache.ignite.internal.processors.query.calcite.rule.logical.ExposeIndexRule#processHints
--
This message was sent by Atlassian Jira
(v8.20.10#820010)