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 <t...@sss.pgh.pa.us> > Dmitriy Igrishin <dmit...@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 >