Bad optimization of OR predicates applied to unions [CORE4102] #4430
Labels
affect-version: 2.0.5
affect-version: 2.0.6
affect-version: 2.0.7
affect-version: 2.1.0
affect-version: 2.1.1
affect-version: 2.1.2
affect-version: 2.1.3
affect-version: 2.1.4
affect-version: 2.1.5 Update 1
affect-version: 2.1.5
affect-version: 2.5.0
affect-version: 2.5.1
affect-version: 2.5.2 Update 1
affect-version: 2.5.2
affect-version: 3.0 Initial
component: engine
fix-version: 2.5.3
fix-version: 3.0 Alpha 1
priority: major
qa: done successfully
type: bug
Submitted by: GR (gr)
Is related to QA527
Script to reproduce:
CREATE TABLE TEST_TABLE (ID INTEGER);
CREATE INDEX IDX1 ON TEST_TABLE (ID);
CREATE VIEW TEST_VIEW
AS
SELECT ID FROM TEST_TABLE
UNION ALL
SELECT ID FROM TEST_TABLE ;
===============================================
Queries with plans:
SELECT *
FROM TEST_TABLE
WHERE (ID = 0) OR (ID = 1)
Plan
PLAN (TEST_TABLE INDEX (IDX1, IDX1))
----------------------------------------
SELECT * FROM TEST_VIEW
WHERE (ID = 0)
Plan
PLAN (TEST_VIEW TEST_TABLE INDEX (IDX1))
PLAN (TEST_VIEW TEST_TABLE INDEX (IDX1))
----------------------------------------
SELECT * FROM TEST_VIEW
WHERE (ID = 0) OR (ID = 1)
Plan
PLAN (TEST_VIEW TEST_TABLE NATURAL)
PLAN (TEST_VIEW TEST_TABLE NATURAL)
while expected
Plan
PLAN (TEST_VIEW TEST_TABLE INDEX (IDX1, IDX1))
PLAN (TEST_VIEW TEST_TABLE INDEX (IDX1, IDX1))
Commits: e2d4568 525a178 FirebirdSQL/fbt-repository@cd3ce80 FirebirdSQL/fbt-repository@f462c7f FirebirdSQL/fbt-repository@a790c1d
The text was updated successfully, but these errors were encountered: