Description
Submitted by: Attila Molnár (e_pluribus_unum)
Relate to CORE4976
Votes: 3
Hi!
CREATE TABLE a (id INTEGER PRIMARY KEY, code VARCHAR (10) UNIQUE, name VARCHAR (10));
CREATE TABLE b (id INTEGER PRIMARY KEY, code VARCHAR (10) UNIQUE, name VARCHAR (10));
CREATE TABLE c (id INTEGER PRIMARY KEY, code VARCHAR (10) UNIQUE, name VARCHAR (10));
CREATE VIEW v (
id,
code,
name)
AS
SELECT
id, code, name
FROM a
UNION
SELECT
id, code, name
FROM b
SELECT *
FROM c
JOIN v ON v.code = c.code
WHERE c.id=0
This has the following plan now :
PLAN JOIN ((V A NATURAL)
PLAN (V B NATURAL), C INDEX (RDB$8))
This is wrong. It shold be (same as the select with left join) :
PLAN JOIN (C INDEX (RDB$PRIMARY7)(V A INDEX (RDB$2))
PLAN (V B INDEX (RDB$4)))
Index statistics ha no effect at all, the plan is always wrong.
Thank You!