Re: proposal: plpgsql - Assert statement
От | Pavel Stehule |
---|---|
Тема | Re: proposal: plpgsql - Assert statement |
Дата | |
Msg-id | CAFj8pRDdqSoB+-g3SRuckSPKhoq5cDjAknmnu0criQB8Hvkb+Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: proposal: plpgsql - Assert statement (Jan Wieck <jan@wi3ck.info>) |
Ответы |
Re: proposal: plpgsql - Assert statement
|
Список | pgsql-hackers |
2014-09-05 14:35 GMT+02:00 Jan Wieck <jan@wi3ck.info>:
On 09/05/2014 04:40 AM, Pavel Stehule wrote:
2014-09-05 10:33 GMT+02:00 Marko Tiikkaja <marko@joh.to
<mailto:marko@joh.to>>:
On 9/5/14 10:09 AM, Pavel Stehule wrote:
I think this could still be parsed correctly, though I'm not
100% sure on
that:
ASSERT WARNING (EXISTS(SELECT ..)), 'data are there';
PLpgSQL uses a ';' or some plpgsql keyword as SQL statement
delimiter. It
reason why RETURN QUERY ... ';' So in this case can practical to
place SQL
statement on the end of plpgsql statement.
*shrug* There are lots of cases where a comma is used as well, e.g.
RAISE NOTICE '..', <expr>, <expr>;
parenthesis are not practical, because it is hard to identify bug ..
I don't see why. The PL/PgSQL SQL parser goes to great lengths to
identify unmatched parenthesis. But the parens probably aren't
necessary in the first place; you could just omit them and keep
parsing until the next comma AFAICT. So the syntax would be:
RAISE [ NOTICE | WARNING | EXCEPTION/ASSERT/WHATEVER ]
boolean_expr [, error_message [, error_message_param [, ... ] ] ];
extension RAISE about ASSERT level has minimal new value
Adding a WHEN clause to RAISE would have the benefit of not needing any new keywords at all.
RAISE EXCEPTION 'format' [, expr ...] WHEN row_count <> 1;
It was one my older proposal.
Can we find a agreement there?
Pavel
Regards,
Jan--
A simplicity of integration SQL and PLpgSQL is in using "smart"
keywords -
It is more verbose, and it allow to well diagnostics
I disagree. The new keywords provide nothing of value here. They
even encourage the use of quirky syntax in *exchange* for verbosity
("IS NOT NULL pk"? really?).
It is about semantic and conformity of proposed tools. Sure, all can
reduced to ASSERT(expr) .. but where is some benefit against function call
I am able to do without any change of language as plpgsql extension -
there is no necessary to do any change for too thin proposal
.marko
Jan Wieck
Senior Software Engineer
http://slony.info
В списке pgsql-hackers по дате отправления: