Merge branch 'errcodes-update'

This commit is contained in:
Daniele Varrazzo 2017-06-05 12:49:42 +01:00
commit 767118467f
4 changed files with 20 additions and 6 deletions

1
NEWS
View File

@ -18,6 +18,7 @@ What's new in psycopg 2.7.2
(:ticket:`#545`). (:ticket:`#545`).
- Fixed `~psycopg2.extras.ReplicationCursor.consume_stream()` - Fixed `~psycopg2.extras.ReplicationCursor.consume_stream()`
*keepalive_interval* argument (:ticket:`#547`). *keepalive_interval* argument (:ticket:`#547`).
- `~psycopg2.errorcodes` map updated to PostgreSQL 10 beta 1.
What's new in psycopg 2.7.1 What's new in psycopg 2.7.1

View File

@ -50,7 +50,7 @@ An example of the available constants defined in the module:
'42P01' '42P01'
Constants representing all the error values defined by PostgreSQL versions Constants representing all the error values defined by PostgreSQL versions
between 8.1 and 9.4 are included in the module. between 8.1 and 10 beta 1 are included in the module.
.. autofunction:: lookup(code) .. autofunction:: lookup(code)

View File

@ -93,6 +93,7 @@ CLASS_PROGRAM_LIMIT_EXCEEDED = '54'
CLASS_OBJECT_NOT_IN_PREREQUISITE_STATE = '55' CLASS_OBJECT_NOT_IN_PREREQUISITE_STATE = '55'
CLASS_OPERATOR_INTERVENTION = '57' CLASS_OPERATOR_INTERVENTION = '57'
CLASS_SYSTEM_ERROR = '58' CLASS_SYSTEM_ERROR = '58'
CLASS_SNAPSHOT_FAILURE = '72'
CLASS_CONFIGURATION_FILE_ERROR = 'F0' CLASS_CONFIGURATION_FILE_ERROR = 'F0'
CLASS_FOREIGN_DATA_WRAPPER_ERROR = 'HV' CLASS_FOREIGN_DATA_WRAPPER_ERROR = 'HV'
CLASS_PL_PGSQL_ERROR = 'P0' CLASS_PL_PGSQL_ERROR = 'P0'
@ -172,6 +173,7 @@ INVALID_USE_OF_ESCAPE_CHARACTER = '2200C'
INVALID_ESCAPE_OCTET = '2200D' INVALID_ESCAPE_OCTET = '2200D'
ZERO_LENGTH_CHARACTER_STRING = '2200F' ZERO_LENGTH_CHARACTER_STRING = '2200F'
MOST_SPECIFIC_TYPE_MISMATCH = '2200G' MOST_SPECIFIC_TYPE_MISMATCH = '2200G'
SEQUENCE_GENERATOR_LIMIT_EXCEEDED = '2200H'
NOT_AN_XML_DOCUMENT = '2200L' NOT_AN_XML_DOCUMENT = '2200L'
INVALID_XML_DOCUMENT = '2200M' INVALID_XML_DOCUMENT = '2200M'
INVALID_XML_CONTENT = '2200N' INVALID_XML_CONTENT = '2200N'
@ -233,6 +235,7 @@ SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED = '25007'
HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL = '25008' HELD_CURSOR_REQUIRES_SAME_ISOLATION_LEVEL = '25008'
NO_ACTIVE_SQL_TRANSACTION = '25P01' NO_ACTIVE_SQL_TRANSACTION = '25P01'
IN_FAILED_SQL_TRANSACTION = '25P02' IN_FAILED_SQL_TRANSACTION = '25P02'
IDLE_IN_TRANSACTION_SESSION_TIMEOUT = '25P03'
# Class 26 - Invalid SQL Statement Name # Class 26 - Invalid SQL Statement Name
INVALID_SQL_STATEMENT_NAME = '26000' INVALID_SQL_STATEMENT_NAME = '26000'
@ -314,6 +317,7 @@ WRONG_OBJECT_TYPE = '42809'
INVALID_FOREIGN_KEY = '42830' INVALID_FOREIGN_KEY = '42830'
CANNOT_COERCE = '42846' CANNOT_COERCE = '42846'
UNDEFINED_FUNCTION = '42883' UNDEFINED_FUNCTION = '42883'
GENERATED_ALWAYS = '428C9'
RESERVED_NAME = '42939' RESERVED_NAME = '42939'
UNDEFINED_TABLE = '42P01' UNDEFINED_TABLE = '42P01'
UNDEFINED_PARAMETER = '42P02' UNDEFINED_PARAMETER = '42P02'
@ -359,6 +363,7 @@ OBJECT_NOT_IN_PREREQUISITE_STATE = '55000'
OBJECT_IN_USE = '55006' OBJECT_IN_USE = '55006'
CANT_CHANGE_RUNTIME_PARAM = '55P02' CANT_CHANGE_RUNTIME_PARAM = '55P02'
LOCK_NOT_AVAILABLE = '55P03' LOCK_NOT_AVAILABLE = '55P03'
UNSAFE_NEW_ENUM_VALUE_USAGE = '55P04'
# Class 57 - Operator Intervention # Class 57 - Operator Intervention
OPERATOR_INTERVENTION = '57000' OPERATOR_INTERVENTION = '57000'
@ -374,6 +379,9 @@ IO_ERROR = '58030'
UNDEFINED_FILE = '58P01' UNDEFINED_FILE = '58P01'
DUPLICATE_FILE = '58P02' DUPLICATE_FILE = '58P02'
# Class 72 - Snapshot Failure
SNAPSHOT_TOO_OLD = '72000'
# Class F0 - Configuration File Error # Class F0 - Configuration File Error
CONFIG_FILE_ERROR = 'F0000' CONFIG_FILE_ERROR = 'F0000'
LOCK_FILE_EXISTS = 'F0001' LOCK_FILE_EXISTS = 'F0001'

View File

@ -34,7 +34,8 @@ def main():
file_start = read_base_file(filename) file_start = read_base_file(filename)
# If you add a version to the list fix the docs (errorcodes.rst, err.rst) # If you add a version to the list fix the docs (errorcodes.rst, err.rst)
classes, errors = fetch_errors( classes, errors = fetch_errors(
['8.1', '8.2', '8.3', '8.4', '9.0', '9.1', '9.2', '9.3', '9.4', '9.5']) ['8.1', '8.2', '8.3', '8.4', '9.0', '9.1', '9.2', '9.3', '9.4', '9.5',
'9.6', '10 b1'])
f = open(filename, "w") f = open(filename, "w")
for line in file_start: for line in file_start:
@ -132,7 +133,7 @@ errors_sgml_url = \
errors_txt_url = \ errors_txt_url = \
"http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;" \ "http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;" \
"f=src/backend/utils/errcodes.txt;hb=REL%s_STABLE" "f=src/backend/utils/errcodes.txt;hb=%s"
def fetch_errors(versions): def fetch_errors(versions):
@ -141,12 +142,16 @@ def fetch_errors(versions):
for version in versions: for version in versions:
print >> sys.stderr, version print >> sys.stderr, version
tver = tuple(map(int, version.split('.'))) tver = tuple(map(int, version.split()[0].split('.')))
if tver < (9, 1): if tver < (9, 1):
c1, e1 = parse_errors_sgml(errors_sgml_url % version) c1, e1 = parse_errors_sgml(errors_sgml_url % version)
else: else:
c1, e1 = parse_errors_txt( # TODO: move to 10 stable when released.
errors_txt_url % version.replace('.', '_')) if version == '10 b1':
tag = 'REL_10_BETA1'
else:
tag = 'REL%s_STABLE' % version.replace('.', '_')
c1, e1 = parse_errors_txt(errors_txt_url % tag)
classes.update(c1) classes.update(c1)
for c, cerrs in e1.iteritems(): for c, cerrs in e1.iteritems():
errors[c].update(cerrs) errors[c].update(cerrs)