I should have posted this here before sending it to pgsql-hackers... ups. ---------- Forwarded message ---------- From: Abel Abraham Camarillo Ojeda <acam...@verlet.org> Date: Thu, Jun 9, 2011 at 8:58 PM Subject: Difference in postgres9.0.4 and postgres9.1beta1 when displaying error lines in functions with comments To: pgsql-hack...@postgresql.org
Postgres 9.0.4 and postgres9.1beta1 give different line of error numbers on functions that raise runtime errors (it seems). How to reproduce, given the next SQL file: $ cat /tmp/sql begin; CREATE FUNCTION pg_temp.commchecksql() returns boolean strict language plpgsql as $$ begin -- SQL comment perform 'aoeuaoeuaeou'::regclass; return true; end; $$; select pg_temp.commchecksql(); rollback; begin; CREATE FUNCTION pg_temp.commcheckC() returns boolean strict language plpgsql as $$ begin /* C-like comment */ perform 'aoeuaoeuaeou'::regclass; return true; end; $$; select pg_temp.commcheckC(); rollback; ------------------ If I run it on postgres9.0.4: $ psql -U postgres template1 -f/tmp/sql SET BEGIN CREATE FUNCTION psql:/tmp/sql:12: ERROR: relation "aoeuaoeuaeou" does not exist LINE 1: SELECT 'aoeuaoeuaeou'::regclass ^ QUERY: SELECT 'aoeuaoeuaeou'::regclass CONTEXT: PL/pgSQL function "commchecksql" line 4 at PERFORM ROLLBACK BEGIN CREATE FUNCTION psql:/tmp/sql:26: ERROR: relation "aoeuaoeuaeou" does not exist LINE 1: SELECT 'aoeuaoeuaeou'::regclass ^ QUERY: SELECT 'aoeuaoeuaeou'::regclass CONTEXT: PL/pgSQL function "commcheckc" line 4 at PERFORM ROLLBACK -------------------- On postgres9.1beta1: $ psql -U postgres template1 -f/tmp/sql SET BEGIN CREATE FUNCTION psql:/tmp/sql:12: ERROR: relation "aoeuaoeuaeou" does not exist LINE 1: SELECT 'aoeuaoeuaeou'::regclass ^ QUERY: SELECT 'aoeuaoeuaeou'::regclass CONTEXT: PL/pgSQL function "commchecksql" line 5 at PERFORM ROLLBACK BEGIN CREATE FUNCTION psql:/tmp/sql:26: ERROR: relation "aoeuaoeuaeou" does not exist LINE 1: SELECT 'aoeuaoeuaeou'::regclass ^ QUERY: SELECT 'aoeuaoeuaeou'::regclass CONTEXT: PL/pgSQL function "commcheckc" line 5 at PERFORM ROLLBACK -------------------- The line numbers of where the error is have changed: --- /tmp/out9.0.4 Thu Jun 9 20:47:45 2011 +++ /tmp/out9.1beta1 Thu Jun 9 20:49:02 2011 @@ -5,7 +5,7 @@ LINE 1: SELECT 'aoeuaoeuaeou'::regclass ^ QUERY: SELECT 'aoeuaoeuaeou'::regclass -CONTEXT: PL/pgSQL function "commchecksql" line 4 at PERFORM +CONTEXT: PL/pgSQL function "commchecksql" line 5 at PERFORM ROLLBACK BEGIN CREATE FUNCTION @@ -13,5 +13,5 @@ LINE 1: SELECT 'aoeuaoeuaeou'::regclass ^ QUERY: SELECT 'aoeuaoeuaeou'::regclass -CONTEXT: PL/pgSQL function "commcheckc" line 4 at PERFORM +CONTEXT: PL/pgSQL function "commcheckc" line 5 at PERFORM ROLLBACK --------------------- I care about this because I have some custom regression tests that check the failing of functions coded like this... and they suddenly failed with that difference when I checked them against postgres9.0.4. Is this an intended behaviour? Thank you. -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs