Incorrect index usage for some cases of index expressions involving literals
----------------------------------------------------------------------------
Key: CORE-5744
URL: http://tracker.firebirdsql.org/browse/CORE-5744
Project: Firebird Core
Issue Type: Bug
Components: Engine
Affects Versions: 3.0.3, 2.5.8, 4.0 Alpha 1, 3.0.2, 2.5.7, 3.0.1, 2.5.6,
3.0.0, 4.0 Initial, 2.5.5, 2.5.4, 2.5.3 Update 1, 2.1.7, 2.5.3, 2.5.2 Update 1,
2.5.2, 2.5.1, 2.5.0
Reporter: Dmitry Yemanov
recreate table tidx (col varchar(10));
commit;
insert into tidx values ('asd');
commit;
create index itidx1 on tidx computed by (col || '0');
commit;
set plan;
select 1 from tidx where col || '0' = 'asd0';
PLAN (TIDX INDEX (ITIDX1))
CONSTANT
============
1
(*) Matching expressions, correct plan and result
select 1 from tidx where col || 0 = 'asd0';
PLAN (TIDX INDEX (ITIDX1))
CONSTANT
============
1
(*) Expressions are in fact different but CAST(0 as VARCHAR(10)) = '0', thus it
surprisingly works.
select 1 from tidx where col || 0 = 'asd0' plan (tidx natural);
PLAN (TIDX NATURAL)
CONSTANT
============
1
(*) Checked without indices - the same result
create index itidx2 on tidx computed by (col || '00');
select 1 from tidx where col || '00' = 'asd00';
PLAN (TIDX INDEX (ITIDX2))
CONSTANT
============
1
(*) Matching expressions, correct plan and result
select 1 from tidx where col || 0 = 'asd0';
PLAN (TIDX INDEX (ITIDX2))
-- NO RESULT!
(*) Expressions are different, plan using index ITIDX2 causes incorrect result
select 1 from tidx where col || 0 = 'asd0' plan (tidx natural);
PLAN (TIDX NATURAL)
CONSTANT
============
1
(*) Checked without indices - one row is returned
I.e. expressions (COL || '00') and (COL || 0) are considered equal and index is
matched, but it definitely shouldn't due to different index keys in the second
index.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://tracker.firebirdsql.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel