Conflicted names of error conditions.

Started by Dmitriy Igrishinover 15 years ago3 messages
#1Dmitriy Igrishin
dmitigr@gmail.com

Hey all,

According to
http://www.postgresql.org/docs/9.0/static/errcodes-appendix.html
some error conditions has non-unique *names*. There are:
modifying_sql_data_not_permitted,
prohibited_sql_statement_attempted,
reading_sql_data_not_permitted
from SQL Routine Exception and External Routine Exception classes.

It should be?

Regards,
Dmitriy

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Dmitriy Igrishin (#1)
Re: Conflicted names of error conditions.

Dmitriy Igrishin <dmitigr@gmail.com> writes:

According to
http://www.postgresql.org/docs/9.0/static/errcodes-appendix.html
some error conditions has non-unique *names*. There are:
modifying_sql_data_not_permitted,
prohibited_sql_statement_attempted,
reading_sql_data_not_permitted
from SQL Routine Exception and External Routine Exception classes.

It should be?

Yup, that's what the SQL standard calls them :-(. In practice, either
underlying SQLSTATE will match that name in an EXCEPTION block, so
it doesn't matter a whole lot. If you have a case where you feel it
does matter, you can trap by the SQLSTATE code instead.

regards, tom lane

#3Dmitriy Igrishin
dmitigr@gmail.com
In reply to: Tom Lane (#2)
Re: Conflicted names of error conditions.

Thanks for you answer, Tom!

I've implemented mapping between SQLSTATE codes and C++ exception
classes of my library. And of course, I've resolved the conflict of names
by giving a proper name to my classes.

Regards,
Dmitriy

2010/8/16 Tom Lane <tgl@sss.pgh.pa.us>

Show quoted text

Dmitriy Igrishin <dmitigr@gmail.com> writes:

According to
http://www.postgresql.org/docs/9.0/static/errcodes-appendix.html
some error conditions has non-unique *names*. There are:
modifying_sql_data_not_permitted,
prohibited_sql_statement_attempted,
reading_sql_data_not_permitted
from SQL Routine Exception and External Routine Exception classes.

It should be?

Yup, that's what the SQL standard calls them :-(. In practice, either
underlying SQLSTATE will match that name in an EXCEPTION block, so
it doesn't matter a whole lot. If you have a case where you feel it
does matter, you can trap by the SQLSTATE code instead.

regards, tom lane