Re: Assertions in PL/PgSQL
От | Alvaro Herrera |
---|---|
Тема | Re: Assertions in PL/PgSQL |
Дата | |
Msg-id | 20130920151914.GB4832@eldon.alvh.no-ip.org обсуждение исходный текст |
Ответ на | Re: Assertions in PL/PgSQL (Pavel Stehule <pavel.stehule@gmail.com>) |
Ответы |
Re: Assertions in PL/PgSQL
|
Список | pgsql-hackers |
Pavel Stehule escribió: > PL/pgSQL had a ADA completeness, uniformity and beauty newer. But it is not > too bad, and one new specialized statement doesn't kill us. A proposed > functionality is often used and we have not tools (macros) how to implement > it simply. > > we support a conditions for few statement - so enhancing RAISE statement is > possible Extending RAISE is one option. Another option is to decorate BEGIN and END with an assertion option; and the assertion would be checked when the block is entered (in BEGIN) or finished (in END). BEGIN ASSERT (a = 1) WITH (name = a_is_one) a := a + 1; END; BEGIN ASSERT (a > 0) a := a + 1; END ASSERT (a = 2) WITH (name = a_is_two); This would play nice with loops too, where the assertion is checked on every iteration. And you can have empty blocks if you want the assertion to be standalone in the middle of some block. -- Álvaro Herrera http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
В списке pgsql-hackers по дате отправления: