Re: Strange Execution-Plan for NOT EXISTS
От | Tom Lane |
---|---|
Тема | Re: Strange Execution-Plan for NOT EXISTS |
Дата | |
Msg-id | 18767.978981137@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Strange Execution-Plan for NOT EXISTS (Jens Hartwig <jhartwig@debis.com>) |
Список | pgsql-sql |
Jens Hartwig <jhartwig@debis.com> writes: > select (min(id) + 1) > from t_dummy d1 > where not exists ( > select id > from t_dummy d2 > where d2.id = (d1.id + 1) > ); > Aggregate (cost=2924207.88..2924207.88 rows=1 width=12) -> Seq Scan on t_dummy d1 (cost=0.00..2924207.88 rows=1 width=12) > SubPlan > -> Seq Scan on t_dummy d2 (cost=0.00..331.36 rows=1 width=12) > Why that? Wouldn�t it be possible to simple use the primary key index in > the sub-query I think that 7.0.* is too stupid to consider an indexscan for a qualifier that looks like "indexvar = ($1 + 1)", which is what you effectively have in this case ($1 being the Param passed in from the outer plan). It only recognizes "indexvar = constant" and "indexvar = param" as indexable expressions. Current sources do better. regards, tom lane
В списке pgsql-sql по дате отправления: