SQL conformity regarding SQLSTATE

Jürgen Purtz <[email protected]>
Newsgroups gmane.comp.db.postgresql.sql
Message-ID <[email protected]>
Hello,

SQLSTATE is defined by the SQL standard. Our usage of the value seems to 
contain some defects in respect to it: SQLCODE is divided into a *class* 
(first two bytes) and a *subclass* (next 3 bytes). If an implementation 
defines additional values to support its own non- standardised features, 
it must use values within the two ranges [5-9] or [I-Z] for the first 
byte of the class *or* the first byte of the subclass. Our preferred 
byte for this case is P. But there are cases where other decisions have 
taken place.

Here is a list of values, which violate the above rule as the values are 
in the range which is reserved for the standard but (actually) are not 
defined by the standard. I compared our list in the version 10 
documentation with the SQL:2011 standard. (Unfortunately I have no 
access to SQL:2016. Maybe, some values of my list are defined there.)

01008, 03000, 0B000, 23502 - 23514, 39001, 42501 - 42939, F0000, F0001.

With that said I have some questions:

a) We strive for standard conformity as well as for continuity in our 
product. How can we solve that conflict?

b) Shall we add a comment into 'errcodes.txt' to remind everybody to the 
mentioned rule?

c) Is it possible to rearrange the rows of 'errcode.txt' in a way that 
reflects the natural sort order of SQLSTATE? This will be helpful for 
reading Appendix A of our documentation which is generated out of 
'errcode.txt'. But: a lot of other Postgres parts depends on this file - 
may be, some unwanted side effects will arise?

d) Do we have representatives in ISO's national bodies (ANSI, DIN, BSI, 
...) to follow and influence the standardisation process?


Jürgen Purtz
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.