BUG #8516: Calling VOLATILE from STABLE function

Поиск
Список
Период
Сортировка
От dwayne@docketnavigator.com
Тема BUG #8516: Calling VOLATILE from STABLE function
Дата
Msg-id E1VU0qE-0003bl-7o@wrigleys.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #8516: Calling VOLATILE from STABLE function  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      8516
Logged by:          Dwayne Towell
Email address:      dwayne@docketnavigator.com
PostgreSQL version: 9.2.4
Operating system:   CentOS
Description:

Why doesn't PostgreSQL give a warning when calling a volatile function from
a stable function?


For example:
CREATE TABLE x (val double);


CREATE FUNCTION g() RETURNS boolean AS $$
    INSERT INTO x SELECT rand() RETURNING val>0.5;
$$ LANGUAGE SQL VOLATILE;


CREATE FUNCTION f() RETURNS boolean AS $$
    SELECT g();         -- this is where the stability-violation happens
$$ LANGUAGE SQL STABLE; -- this is a lie


According to the documentation, f() should be marked VOLATILE also, since
calling f() produces side effects. PostgreSQL does not give a warning (or
better yet, an error); I think it should.

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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: BUG #8467: Slightly confusing pgcrypto example in docs
Следующее
От: Gabriel Ciubotaru
Дата:
Сообщение: Bit String expand bug