
|
If you were logged in you would be able to see more operations.
|
|
|
|
Environment:
|
Linux 2.6.18-194.17.1.el5 #1 SMP x86_64 GNU/Linux
|
|
Issue Links:
|
Relate
|
|
|
|
This issue is related to:
|
|
|
|
|
|
CORE-3090
Incorrect LEFT JOIN result using table and derived constant subquery
|
|
|
|
|
|
|
| Planning Status: |
Unspecified
|
|
CREATE TABLE TMP
(
ID Integer NOT NULL,
CONSTRAINT PK_TMP_1 PRIMARY KEY (ID)
);
CREATE VIEW TMP_VIEW (ID1, ID2)
AS
SELECT 1,(SELECT 1 FROM RDB$DATABASE) FROM RDB$DATABASE;
/*** With view + subselect column ***/
SELECT * FROM tmp_view TV LEFT JOIN tmp T ON T.id=TV.id2
> PLAN JOIN (TV RDB$DATABASE NATURAL, T NATURAL)
- PK_TMP_1 is not used.
/*** With view + normal column ***/
SELECT * FROM tmp_view TV LEFT JOIN tmp T ON T.id=TV.id1
> PLAN JOIN (TV RDB$DATABASE NATURAL, T INDEX (PK_TMP_1))
- PK_TMP_1 is used.
/*** Without view + subselect column ***/
SELECT * FROM RDB$DATABASE TV LEFT JOIN tmp T ON T.id=(SELECT 1 FROM RDB$DATABASE)
> PLAN JOIN (TV NATURAL, T INDEX (PK_TMP_1))
- PK_TMP_1 is used.
In FB 2.1.3 and FB 2.5 RC3 is PK_TMP_1 used.
|
|
Description
|
CREATE TABLE TMP
(
ID Integer NOT NULL,
CONSTRAINT PK_TMP_1 PRIMARY KEY (ID)
);
CREATE VIEW TMP_VIEW (ID1, ID2)
AS
SELECT 1,(SELECT 1 FROM RDB$DATABASE) FROM RDB$DATABASE;
/*** With view + subselect column ***/
SELECT * FROM tmp_view TV LEFT JOIN tmp T ON T.id=TV.id2
> PLAN JOIN (TV RDB$DATABASE NATURAL, T NATURAL)
- PK_TMP_1 is not used.
/*** With view + normal column ***/
SELECT * FROM tmp_view TV LEFT JOIN tmp T ON T.id=TV.id1
> PLAN JOIN (TV RDB$DATABASE NATURAL, T INDEX (PK_TMP_1))
- PK_TMP_1 is used.
/*** Without view + subselect column ***/
SELECT * FROM RDB$DATABASE TV LEFT JOIN tmp T ON T.id=(SELECT 1 FROM RDB$DATABASE)
> PLAN JOIN (TV NATURAL, T INDEX (PK_TMP_1))
- PK_TMP_1 is used.
In FB 2.1.3 and FB 2.5 RC3 is PK_TMP_1 used. |
Show » |
|
CORE-3090.