Bug with 'iscachable' attribute (Was: Index selection bug)

Поиск
Список
Период
Сортировка
От Andriy I Pilipenko
Тема Bug with 'iscachable' attribute (Was: Index selection bug)
Дата
Msg-id Pine.BSF.4.21.0007271025040.68132-100000@bamby.marka.net.ua
обсуждение исходный текст
Ответ на Re: Index selection bug  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: Bug with 'iscachable' attribute (Was: Index selection bug)
Re: Bug with 'iscachable' attribute (Was: Index selection bug)
Список pgsql-bugs
On Wed, 26 Jul 2000, Tom Lane wrote:

> Andriy I Pilipenko <bamby@marka.net.ua> writes:
> >     create function func() returns int as 'select 1' language 'sql';
>
> >     set enable_seqscan to 'off';
>
> >     explain select * from t where f = 1;
>
> >       Index Scan using i on t  (cost=0.00..2.01 rows=1 width=4)
>
> >     explain select * from t where f = func();
>
> >       Seq Scan on t  (cost=100000000.00..100000001.34 rows=1 width=4)
>
> Not a bug, because you didn't declare the function 'iscachable'.
> For all the system knows, func() is like random() and will return a
> different result at every row.  An indexscan can't be used unless it's
> safe to fold the function call down to a constant.  See
> http://www.postgresql.org/users-lounge/docs/7.0/postgres/sql-createfunction.htm

Thank you for help. I used iscachable attribute and all are mostly ok
except this:

create table a (a int)

create table b (b int)

create function f() returns int as '
    select a
          from a
         where a = (select max(b) from b)
' language 'sql'
with (iscachable)

select f()

  ERROR:  replace_vars_with_subplan_refs: variable not in subplan target list


  Kind regards,
  Andriy I Pilipenko
  PAI1-RIPE

В списке pgsql-bugs по дате отправления:

Предыдущее
От: bruc@stone.congenomics.com (Robert E. Bruccoleri)
Дата:
Сообщение: Re: Index selection on a large table
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Bug with 'iscachable' attribute (Was: Index selection bug)