pgtcl combined with view with certain insert/update-rules => crash

Поиск
Список
Период
Сортировка
От Wolfgang Walter
Тема pgtcl combined with view with certain insert/update-rules => crash
Дата
Msg-id 3E31479B.6CD06B69@studentenwerk.mhn.de
обсуждение исходный текст
Ответы Re: pgtcl combined with view with certain insert/update-rules => crash  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
Hi,

since 7.3 we observe repeatable crashes of the backend under certain
conditions.

If pgtcl-function executes an INSERT-command via spi-exec on a view with
an INSERT-rule which actually does not do an insert but a SELECT instead
the backend crashes when the rule-execution finished.

This does not happen if you do the same INSERT via psql-tool or from
within a pgsql-function via EXECUTE.

The same is true for UPDATE-command/rule.

Executing an INSERT as last statement of a rules fixes the problem.

postgresql 7.2 works fine.


Example:

CREATE VIEW a AS
    SELECT f FROM b;

CREATE RULE r AS ON INSERT TO a DO INSTEAD (
    SELECT xyz(NEW.f);
);

xyz is any stored procedure (i.e. written in pgsql).

(though I don't think it is important that a stored procedured is called
at all via the select).


CREATE FUNCTION t () RETURNS VOID AS '
    spi_exec "INSERT INTO a (f) VALUES (''5'')"
' LANGUAGE 'pltcl';


Then calling t from psql i.e. leads to a crash.


If you change the rule r to

CREATE RULE r AS ON INSERT TO a DO INSTEAD (
    SELECT xyz(NEW.f);
    INSERT INTO dummy (bla) VALUES ('abcdefg');
);

(and table dummy exists of course)

then t works fine.




--
Wolfgang Walter
Studentenwerk München
Anstalt des öffentlichen Rechts
EDV
Leopoldstraße 15
80802 München
Tel: +49 89 38196 276
Fax: +49 89 38196 144
wolfgang.walter@studentenwerk.mhn.de
http://www.studentenwerk.mhn.de/

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

Предыдущее
От: Peter Eisentraut
Дата:
Сообщение: Re: No migration path for MONEY
Следующее
От: "Fredy K. GMX"
Дата:
Сообщение: ECPG does not recognise typedefs