[
https://issues.apache.org/jira/browse/IGNITE-19882?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Evgeny Stanilovsky reassigned IGNITE-19882:
-------------------------------------------
Assignee: Evgeny Stanilovsky
> Sql. Queries that access columns of type DECIMAL do not pick index, when
> compared with INT/BIGINT.
> --------------------------------------------------------------------------------------------------
>
> Key: IGNITE-19882
> URL: https://issues.apache.org/jira/browse/IGNITE-19882
> Project: Ignite
> Issue Type: Bug
> Components: sql
> Affects Versions: 3.0.0-beta1
> Reporter: Maksim Zhuravkov
> Assignee: Evgeny Stanilovsky
> Priority: Minor
> Labels: ignite-3
>
> When decimal column is compared with literal/dynamic parameter of integral
> numeric type, index is not picked:
> {code:java}
> sql("CREATE TABLE t_dec (ID INTEGER PRIMARY KEY, VAL DECIMAL(5,3))");
> sql("CREATE INDEX t_dec_idx ON t_dec(VAL)");
> sql("INSERT INTO t_dec VALUES (1, 42)");
> // 1 passes
> assertQuery("SELECT id FROM t_dec WHERE val = 42.000")
> .matches(containsIndexScan("PUBLIC", "T_DEC", "T_DEC_IDX"))
> .returns(1)
> .check();
> // 2 passes
> assertQuery("SELECT id FROM t_dec WHERE val = 42::DECIMAL(5,3)")
> .matches(containsIndexScan("PUBLIC", "T_DEC", "T_DEC_IDX"))
> .returns(1)
> .check();
> // 3 fails
> assertQuery("SELECT id FROM t_dec WHERE val = 42")
> .matches(containsIndexScan("PUBLIC", "T_DEC", "T_DEC_IDX"))
> .returns(1)
> .check();
> // 4 fails
> assertQuery("SELECT id FROM t_dec WHERE val = ?")
> .withParams(42)
> .matches(containsIndexScan("PUBLIC", "T_DEC", "T_DEC_IDX"))
> .returns(1)
> .check();
> // 5 fails
> assertQuery("SELECT id FROM t_dec WHERE val = ?")
> .withParams(42L)
> .matches(containsIndexScan("PUBLIC", "T_DEC", "T_DEC_IDX"))
> .returns(1)
> .check();
> {code}
> Expected behaviour: Queries 3, 4, 5 should use an index.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)