Re: poll: CHECK TRIGGER?
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
From: Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>
To: Pavel Stehule <pavel.stehule@gmail.com>
Cc: Alvaro Herrera <alvherre@commandprompt.com>, Peter Eisentraut <peter_e@gmx.net>, Robert Haas <robertmhaas@gmail.com>, Pg Hackers <pgsql-hackers@postgresql.org>, Tom Lane <tgl@sss.pgh.pa.us>, Albe Laurenz <laurenz.albe@wien.gv.at>, Petr Jelinek <pjmodos@pjmodos.net>
Date: 2012-03-29T16:07:02Z
Lists: pgsql-hackers
On 28.03.2012 23:54, Pavel Stehule wrote: > 2012/3/28 Heikki Linnakangas<heikki.linnakangas@enterprisedb.com>: >> In prepare_expr(), you use a subtransaction to catch any ERRORs that happen >> during parsing the expression. That's a good idea, and I think many of the >> check_* functions could be greatly simplified by adopting a similar >> approach. Just ereport() any errors you find, and catch them at the >> appropriate level, appending the error to the output string. Your current >> approach of returning true/false depending on whether there was any errors >> seems tedious. > > This is not possible, when we would to enable "fatal_errors = false" > checking. I can do subtransaction in prepare_expr, because it is the > most deep level, but I cannot to use it elsewhere, because I cannot > handle exception and continue with other parts of statement. Well, you can continue on the next statement. That's almost as good. In practice, if there's one error in a statement, it seems unlikely that you would correctly diagnose other errors on the same line. They're more likely to be fallout of the same mistake. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com