Re: ExecInitIndexScan: both left and right ops are rel-vars
От | Ed Loehr |
---|---|
Тема | Re: ExecInitIndexScan: both left and right ops are rel-vars |
Дата | |
Msg-id | 3956EA41.CCF94043@austin.rr.com обсуждение исходный текст |
Ответ на | ExecInitIndexScan: both left and right ops are rel-vars (Ed Loehr <eloehr@austin.rr.com>) |
Список | pgsql-hackers |
Ed Loehr wrote: > > And here is an old nemesis, thought to have been fixed in 7.0, > reproducible on 7.0beta3 with the following: > > DROP TABLE foo; > CREATE TABLE foo (d date); > CREATE UNIQUE INDEX date_uidx ON foo(d); > CREATE UNIQUE INDEX datetime_uidx ON foo(datetime(d)); > INSERT INTO foo (d) VALUES ('17-Jun-1995'); > > DROP TABLE bar; > DROP SEQUENCE bar_id_seq; > CREATE TABLE bar ( > id SERIAL, > start_time DATETIME, > duration FLOAT > ); > INSERT INTO bar (start_time, duration) VALUES ('17-Jun-1995', 3); > > DROP TABLE baz; > DROP SEQUENCE baz_id_seq; > CREATE TABLE baz ( > id SERIAL, > bar_id INTEGER, > duration FLOAT > ); > INSERT INTO baz (bar_id, duration) SELECT id, duration FROM bar; > A final clue: if I run 'VACUUM ANALYZE' at this point in the script, before the select, the error disappears. Regards, Ed Loehr > -- Here's the offending query... > SELECT f.d, r.start_time::date, r.duration AS "r_dur", z.duration AS > "z_dur" > FROM foo f, bar r, baz z > WHERE r.id = 2 > AND z.bar_id = 2 > AND f.d = (r.start_time - '1 day'::interval)::date ;
В списке pgsql-hackers по дате отправления: