Re: Error prone compilation of stored procedure

Поиск
Список
Период
Сортировка
От Pavel Stehule
Тема Re: Error prone compilation of stored procedure
Дата
Msg-id CAFj8pRAFm4+KE8ACb+fQ73b1t4TGeH8N7LLDQXb+kqObe6F1Ag@mail.gmail.com
обсуждение исходный текст
Ответ на Error prone compilation of stored procedure  (pinker <pinker@onet.eu>)
Ответы Re: Error prone compilation of stored procedure  (pinker <pinker@onet.eu>)
Список pgsql-general


2015-07-06 12:08 GMT+02:00 pinker <pinker@onet.eu>:
What's the reason behind very "tolerant" error checking during stored
procedure compilation?
Why PostgreSQL allows using variable (j_var) that doesn't exists? It isn't
column name or isn't declared anywhere. Like in example below:

CREATE OR REPLACE FUNCTION test()
  RETURNS int AS
$BODY$
BEGIN

select 1 WHERE 1 > j_var;
        RETURN 2;
END;
$BODY$
  LANGUAGE plpgsql VOLATILE
  COST 100;

PLpgSQL doesn't check a identifiers inside embedded SQL before execution. In this case j_var can be theoretically some SQL identifiers - the possibility or impossibility is not know in function validation stage.

It has some plus and minus points. The plus - there are not strong dependency between database objects and PL code. The minus - lot of bugs are not detected in validation stage. But this issue can be solved by plpgsql_check extension https://github.com/okbob/plpgsql_check/

Regards

Pavel

 



--
View this message in context: http://postgresql.nabble.com/Error-prone-compilation-of-stored-procedure-tp5856699.html
Sent from the PostgreSQL - general mailing list archive at Nabble.com.


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

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

Предыдущее
От: Andreas Kretschmer
Дата:
Сообщение: Re: Error prone compilation of stored procedure
Следующее
От: pinker
Дата:
Сообщение: Re: Error prone compilation of stored procedure