pg 0.15.1 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,31 @@
1
- == v0.15.1 [YYYY-MM-DD] Michael Granger <ged@FaerieMUD.org>
1
+ == v0.16.0 [2013-07-22] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ Bugfixes:
4
+
5
+ - Avoid warnings about uninitialized instance variables.
6
+ - Use a more standard method of adding library and include directories.
7
+ This fixes build on AIX (Github #7) and Solaris (#164).
8
+ - Cancel the running query, if a thread is about to be killed (e.g. by CTRL-C).
9
+ - Fix GVL issue with wait_for_notify/notifies and notice callbacks.
10
+ - Set proper encoding on the string returned by quote_ident, escape_literal
11
+ and escape_identifier (#163).
12
+ - Use nil as PG::Error#result in case of a NULL-result from libpq (#166).
13
+ - Recalculate the timeout of conn#wait_for_notify and conn#block in case
14
+ of socket events that require re-runs of select().
15
+
16
+ Documentation fixes:
17
+
18
+ - Fix non working example for PGresult#error_field.
19
+
20
+ Enhancements:
21
+
22
+ - Add unique exception classes for each PostgreSQL error type (#5).
23
+ - Return result of the block in conn#transaction instead of nil (#158).
24
+ - Allow 'rake compile' and 'rake gem' on non mercurial repos.
25
+ - Add support for PG_DIAG_*_NAME error fields of PostgreSQL-9.3 (#161).
26
+
27
+
28
+ == v0.15.1 [2013-04-08] Michael Granger <ged@FaerieMUD.org>
2
29
 
3
30
  Bugfixes:
4
31
 
@@ -156,11 +183,11 @@ Bugfixes:
156
183
  * accept a nil argument for no timeout (Sequel support)
157
184
  * Fixed API docs
158
185
  * Taint and encode event name and payload
159
- - Handle errors while rb_thread_select()ing in PGconn#block.
186
+ - Handle errors while rb_thread_select()ing in PGconn#block.
160
187
  (Brian Weaver).
161
188
  - Fixes for Win32 async queries (Rafał Bigaj)
162
189
  - Memory leak fixed: Closing opened WSA event. (rafal)
163
- - Fixes for #66 Win32 asynchronous queries hang on connection
190
+ - Fixes for #66 Win32 asynchronous queries hang on connection
164
191
  error. (rafal)
165
192
  - Fixed a typo in PGconn#error_message's documentation
166
193
  - fixing unused variable warnings for ruby 1.9.3 (Aaron Patterson)
@@ -173,7 +200,7 @@ Bugfixes:
173
200
 
174
201
  Enhancements:
175
202
 
176
- * Added a PGresult#values method to fetch all result rows as an Array of
203
+ * Added a PGresult#values method to fetch all result rows as an Array of
177
204
  Arrays. Thanks to Jason Yanowitz (JYanowitz at enovafinancial dot com) for
178
205
  the patch.
179
206
 
@@ -12,12 +12,16 @@ README.ja.rdoc
12
12
  README.rdoc
13
13
  Rakefile
14
14
  Rakefile.cross
15
+ ext/errorcodes.def
16
+ ext/errorcodes.rb
17
+ ext/errorcodes.txt
15
18
  ext/extconf.rb
16
19
  ext/gvl_wrappers.c
17
20
  ext/gvl_wrappers.h
18
21
  ext/pg.c
19
22
  ext/pg.h
20
23
  ext/pg_connection.c
24
+ ext/pg_errors.c
21
25
  ext/pg_result.c
22
26
  ext/vc/pg.sln
23
27
  ext/vc/pg_18/pg.vcproj
data/Rakefile CHANGED
@@ -129,17 +129,21 @@ end
129
129
 
130
130
  # Make the ChangeLog update if the repo has changed since it was last built
131
131
  file '.hg/branch' do
132
- abort "You need the Mercurial repo to make packages"
132
+ warn "WARNING: You need the Mercurial repo to update the ChangeLog"
133
133
  end
134
- file 'ChangeLog' => '.hg/branch' do |task|
135
- $stderr.puts "Updating the changelog..."
136
- begin
137
- content = make_changelog()
138
- rescue NameError
139
- abort "Packaging tasks require the hoe-mercurial plugin (gem install hoe-mercurial)"
140
- end
141
- File.open( task.name, 'w', 0644 ) do |fh|
142
- fh.print( content )
134
+ file 'ChangeLog' do |task|
135
+ if File.exist?('.hg/branch')
136
+ $stderr.puts "Updating the changelog..."
137
+ begin
138
+ content = make_changelog()
139
+ rescue NameError
140
+ abort "Packaging tasks require the hoe-mercurial plugin (gem install hoe-mercurial)"
141
+ end
142
+ File.open( task.name, 'w', 0644 ) do |fh|
143
+ fh.print( content )
144
+ end
145
+ else
146
+ touch 'ChangeLog'
143
147
  end
144
148
  end
145
149
 
@@ -154,3 +158,19 @@ task :cleanup_testing_dbs do
154
158
  Rake::Task[:clean].invoke
155
159
  end
156
160
 
161
+ desc "Update list of server error codes"
162
+ task :update_error_codes do
163
+ URL_ERRORCODES_TXT = "http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;f=src/backend/utils/errcodes.txt;hb=HEAD"
164
+
165
+ ERRORCODES_TXT = "ext/errorcodes.txt"
166
+ sh "wget #{URL_ERRORCODES_TXT.inspect} -O #{ERRORCODES_TXT.inspect} || curl #{URL_ERRORCODES_TXT.inspect} -o #{ERRORCODES_TXT.inspect}"
167
+ end
168
+
169
+ file 'ext/errorcodes.def' => ['ext/errorcodes.rb', 'ext/errorcodes.txt'] do
170
+ ruby 'ext/errorcodes.rb', 'ext/errorcodes.txt', 'ext/errorcodes.def'
171
+ end
172
+
173
+ file 'ext/pg_errors.c' => ['ext/errorcodes.def'] do
174
+ # trigger compilation of changed errorcodes.def
175
+ touch 'ext/pg_errors.c'
176
+ end
@@ -0,0 +1,931 @@
1
+ /*
2
+ * ext/errorcodes.def - Definition of error classes.
3
+ *
4
+ * WARNING: This file is autogenerated. Please edit ext/errorcodes.rb !
5
+ *
6
+ */
7
+
8
+
9
+ {
10
+ VALUE klass = define_error_class( "SqlStatementNotYetComplete", NULL );
11
+ register_error_class( "03000", klass );
12
+ register_error_class( "03", klass );
13
+ }
14
+ {
15
+ VALUE klass = define_error_class( "ConnectionException", NULL );
16
+ register_error_class( "08000", klass );
17
+ register_error_class( "08", klass );
18
+ }
19
+ {
20
+ VALUE klass = define_error_class( "ConnectionDoesNotExist", "08" );
21
+ register_error_class( "08003", klass );
22
+ }
23
+ {
24
+ VALUE klass = define_error_class( "ConnectionFailure", "08" );
25
+ register_error_class( "08006", klass );
26
+ }
27
+ {
28
+ VALUE klass = define_error_class( "SqlclientUnableToEstablishSqlconnection", "08" );
29
+ register_error_class( "08001", klass );
30
+ }
31
+ {
32
+ VALUE klass = define_error_class( "SqlserverRejectedEstablishmentOfSqlconnection", "08" );
33
+ register_error_class( "08004", klass );
34
+ }
35
+ {
36
+ VALUE klass = define_error_class( "TransactionResolutionUnknown", "08" );
37
+ register_error_class( "08007", klass );
38
+ }
39
+ {
40
+ VALUE klass = define_error_class( "ProtocolViolation", "08" );
41
+ register_error_class( "08P01", klass );
42
+ }
43
+ {
44
+ VALUE klass = define_error_class( "TriggeredActionException", NULL );
45
+ register_error_class( "09000", klass );
46
+ register_error_class( "09", klass );
47
+ }
48
+ {
49
+ VALUE klass = define_error_class( "FeatureNotSupported", NULL );
50
+ register_error_class( "0A000", klass );
51
+ register_error_class( "0A", klass );
52
+ }
53
+ {
54
+ VALUE klass = define_error_class( "InvalidTransactionInitiation", NULL );
55
+ register_error_class( "0B000", klass );
56
+ register_error_class( "0B", klass );
57
+ }
58
+ {
59
+ VALUE klass = define_error_class( "LocatorException", NULL );
60
+ register_error_class( "0F000", klass );
61
+ register_error_class( "0F", klass );
62
+ }
63
+ {
64
+ VALUE klass = define_error_class( "LEInvalidSpecification", "0F" );
65
+ register_error_class( "0F001", klass );
66
+ }
67
+ {
68
+ VALUE klass = define_error_class( "InvalidGrantor", NULL );
69
+ register_error_class( "0L000", klass );
70
+ register_error_class( "0L", klass );
71
+ }
72
+ {
73
+ VALUE klass = define_error_class( "InvalidGrantOperation", "0L" );
74
+ register_error_class( "0LP01", klass );
75
+ }
76
+ {
77
+ VALUE klass = define_error_class( "InvalidRoleSpecification", NULL );
78
+ register_error_class( "0P000", klass );
79
+ register_error_class( "0P", klass );
80
+ }
81
+ {
82
+ VALUE klass = define_error_class( "DiagnosticsException", NULL );
83
+ register_error_class( "0Z000", klass );
84
+ register_error_class( "0Z", klass );
85
+ }
86
+ {
87
+ VALUE klass = define_error_class( "StackedDiagnosticsAccessedWithoutActiveHandler", "0Z" );
88
+ register_error_class( "0Z002", klass );
89
+ }
90
+ {
91
+ VALUE klass = define_error_class( "CaseNotFound", NULL );
92
+ register_error_class( "20000", klass );
93
+ register_error_class( "20", klass );
94
+ }
95
+ {
96
+ VALUE klass = define_error_class( "CardinalityViolation", NULL );
97
+ register_error_class( "21000", klass );
98
+ register_error_class( "21", klass );
99
+ }
100
+ {
101
+ VALUE klass = define_error_class( "DataException", NULL );
102
+ register_error_class( "22000", klass );
103
+ register_error_class( "22", klass );
104
+ }
105
+ {
106
+ VALUE klass = define_error_class( "ArraySubscriptError", "22" );
107
+ register_error_class( "2202E", klass );
108
+ }
109
+ {
110
+ VALUE klass = define_error_class( "CharacterNotInRepertoire", "22" );
111
+ register_error_class( "22021", klass );
112
+ }
113
+ {
114
+ VALUE klass = define_error_class( "DatetimeFieldOverflow", "22" );
115
+ register_error_class( "22008", klass );
116
+ }
117
+ {
118
+ VALUE klass = define_error_class( "DivisionByZero", "22" );
119
+ register_error_class( "22012", klass );
120
+ }
121
+ {
122
+ VALUE klass = define_error_class( "ErrorInAssignment", "22" );
123
+ register_error_class( "22005", klass );
124
+ }
125
+ {
126
+ VALUE klass = define_error_class( "EscapeCharacterConflict", "22" );
127
+ register_error_class( "2200B", klass );
128
+ }
129
+ {
130
+ VALUE klass = define_error_class( "IndicatorOverflow", "22" );
131
+ register_error_class( "22022", klass );
132
+ }
133
+ {
134
+ VALUE klass = define_error_class( "IntervalFieldOverflow", "22" );
135
+ register_error_class( "22015", klass );
136
+ }
137
+ {
138
+ VALUE klass = define_error_class( "InvalidArgumentForLog", "22" );
139
+ register_error_class( "2201E", klass );
140
+ }
141
+ {
142
+ VALUE klass = define_error_class( "InvalidArgumentForNtile", "22" );
143
+ register_error_class( "22014", klass );
144
+ }
145
+ {
146
+ VALUE klass = define_error_class( "InvalidArgumentForNthValue", "22" );
147
+ register_error_class( "22016", klass );
148
+ }
149
+ {
150
+ VALUE klass = define_error_class( "InvalidArgumentForPowerFunction", "22" );
151
+ register_error_class( "2201F", klass );
152
+ }
153
+ {
154
+ VALUE klass = define_error_class( "InvalidArgumentForWidthBucketFunction", "22" );
155
+ register_error_class( "2201G", klass );
156
+ }
157
+ {
158
+ VALUE klass = define_error_class( "InvalidCharacterValueForCast", "22" );
159
+ register_error_class( "22018", klass );
160
+ }
161
+ {
162
+ VALUE klass = define_error_class( "InvalidDatetimeFormat", "22" );
163
+ register_error_class( "22007", klass );
164
+ }
165
+ {
166
+ VALUE klass = define_error_class( "InvalidEscapeCharacter", "22" );
167
+ register_error_class( "22019", klass );
168
+ }
169
+ {
170
+ VALUE klass = define_error_class( "InvalidEscapeOctet", "22" );
171
+ register_error_class( "2200D", klass );
172
+ }
173
+ {
174
+ VALUE klass = define_error_class( "InvalidEscapeSequence", "22" );
175
+ register_error_class( "22025", klass );
176
+ }
177
+ {
178
+ VALUE klass = define_error_class( "NonstandardUseOfEscapeCharacter", "22" );
179
+ register_error_class( "22P06", klass );
180
+ }
181
+ {
182
+ VALUE klass = define_error_class( "InvalidIndicatorParameterValue", "22" );
183
+ register_error_class( "22010", klass );
184
+ }
185
+ {
186
+ VALUE klass = define_error_class( "InvalidParameterValue", "22" );
187
+ register_error_class( "22023", klass );
188
+ }
189
+ {
190
+ VALUE klass = define_error_class( "InvalidRegularExpression", "22" );
191
+ register_error_class( "2201B", klass );
192
+ }
193
+ {
194
+ VALUE klass = define_error_class( "InvalidRowCountInLimitClause", "22" );
195
+ register_error_class( "2201W", klass );
196
+ }
197
+ {
198
+ VALUE klass = define_error_class( "InvalidRowCountInResultOffsetClause", "22" );
199
+ register_error_class( "2201X", klass );
200
+ }
201
+ {
202
+ VALUE klass = define_error_class( "InvalidTimeZoneDisplacementValue", "22" );
203
+ register_error_class( "22009", klass );
204
+ }
205
+ {
206
+ VALUE klass = define_error_class( "InvalidUseOfEscapeCharacter", "22" );
207
+ register_error_class( "2200C", klass );
208
+ }
209
+ {
210
+ VALUE klass = define_error_class( "MostSpecificTypeMismatch", "22" );
211
+ register_error_class( "2200G", klass );
212
+ }
213
+ {
214
+ VALUE klass = define_error_class( "NullValueNotAllowed", "22" );
215
+ register_error_class( "22004", klass );
216
+ }
217
+ {
218
+ VALUE klass = define_error_class( "NullValueNoIndicatorParameter", "22" );
219
+ register_error_class( "22002", klass );
220
+ }
221
+ {
222
+ VALUE klass = define_error_class( "NumericValueOutOfRange", "22" );
223
+ register_error_class( "22003", klass );
224
+ }
225
+ {
226
+ VALUE klass = define_error_class( "StringDataLengthMismatch", "22" );
227
+ register_error_class( "22026", klass );
228
+ }
229
+ {
230
+ VALUE klass = define_error_class( "StringDataRightTruncation", "22" );
231
+ register_error_class( "22001", klass );
232
+ }
233
+ {
234
+ VALUE klass = define_error_class( "SubstringError", "22" );
235
+ register_error_class( "22011", klass );
236
+ }
237
+ {
238
+ VALUE klass = define_error_class( "TrimError", "22" );
239
+ register_error_class( "22027", klass );
240
+ }
241
+ {
242
+ VALUE klass = define_error_class( "UnterminatedCString", "22" );
243
+ register_error_class( "22024", klass );
244
+ }
245
+ {
246
+ VALUE klass = define_error_class( "ZeroLengthCharacterString", "22" );
247
+ register_error_class( "2200F", klass );
248
+ }
249
+ {
250
+ VALUE klass = define_error_class( "FloatingPointException", "22" );
251
+ register_error_class( "22P01", klass );
252
+ }
253
+ {
254
+ VALUE klass = define_error_class( "InvalidTextRepresentation", "22" );
255
+ register_error_class( "22P02", klass );
256
+ }
257
+ {
258
+ VALUE klass = define_error_class( "InvalidBinaryRepresentation", "22" );
259
+ register_error_class( "22P03", klass );
260
+ }
261
+ {
262
+ VALUE klass = define_error_class( "BadCopyFileFormat", "22" );
263
+ register_error_class( "22P04", klass );
264
+ }
265
+ {
266
+ VALUE klass = define_error_class( "UntranslatableCharacter", "22" );
267
+ register_error_class( "22P05", klass );
268
+ }
269
+ {
270
+ VALUE klass = define_error_class( "NotAnXmlDocument", "22" );
271
+ register_error_class( "2200L", klass );
272
+ }
273
+ {
274
+ VALUE klass = define_error_class( "InvalidXmlDocument", "22" );
275
+ register_error_class( "2200M", klass );
276
+ }
277
+ {
278
+ VALUE klass = define_error_class( "InvalidXmlContent", "22" );
279
+ register_error_class( "2200N", klass );
280
+ }
281
+ {
282
+ VALUE klass = define_error_class( "InvalidXmlComment", "22" );
283
+ register_error_class( "2200S", klass );
284
+ }
285
+ {
286
+ VALUE klass = define_error_class( "InvalidXmlProcessingInstruction", "22" );
287
+ register_error_class( "2200T", klass );
288
+ }
289
+ {
290
+ VALUE klass = define_error_class( "IntegrityConstraintViolation", NULL );
291
+ register_error_class( "23000", klass );
292
+ register_error_class( "23", klass );
293
+ }
294
+ {
295
+ VALUE klass = define_error_class( "RestrictViolation", "23" );
296
+ register_error_class( "23001", klass );
297
+ }
298
+ {
299
+ VALUE klass = define_error_class( "NotNullViolation", "23" );
300
+ register_error_class( "23502", klass );
301
+ }
302
+ {
303
+ VALUE klass = define_error_class( "ForeignKeyViolation", "23" );
304
+ register_error_class( "23503", klass );
305
+ }
306
+ {
307
+ VALUE klass = define_error_class( "UniqueViolation", "23" );
308
+ register_error_class( "23505", klass );
309
+ }
310
+ {
311
+ VALUE klass = define_error_class( "CheckViolation", "23" );
312
+ register_error_class( "23514", klass );
313
+ }
314
+ {
315
+ VALUE klass = define_error_class( "ExclusionViolation", "23" );
316
+ register_error_class( "23P01", klass );
317
+ }
318
+ {
319
+ VALUE klass = define_error_class( "InvalidCursorState", NULL );
320
+ register_error_class( "24000", klass );
321
+ register_error_class( "24", klass );
322
+ }
323
+ {
324
+ VALUE klass = define_error_class( "InvalidTransactionState", NULL );
325
+ register_error_class( "25000", klass );
326
+ register_error_class( "25", klass );
327
+ }
328
+ {
329
+ VALUE klass = define_error_class( "ActiveSqlTransaction", "25" );
330
+ register_error_class( "25001", klass );
331
+ }
332
+ {
333
+ VALUE klass = define_error_class( "BranchTransactionAlreadyActive", "25" );
334
+ register_error_class( "25002", klass );
335
+ }
336
+ {
337
+ VALUE klass = define_error_class( "HeldCursorRequiresSameIsolationLevel", "25" );
338
+ register_error_class( "25008", klass );
339
+ }
340
+ {
341
+ VALUE klass = define_error_class( "InappropriateAccessModeForBranchTransaction", "25" );
342
+ register_error_class( "25003", klass );
343
+ }
344
+ {
345
+ VALUE klass = define_error_class( "InappropriateIsolationLevelForBranchTransaction", "25" );
346
+ register_error_class( "25004", klass );
347
+ }
348
+ {
349
+ VALUE klass = define_error_class( "NoActiveSqlTransactionForBranchTransaction", "25" );
350
+ register_error_class( "25005", klass );
351
+ }
352
+ {
353
+ VALUE klass = define_error_class( "ReadOnlySqlTransaction", "25" );
354
+ register_error_class( "25006", klass );
355
+ }
356
+ {
357
+ VALUE klass = define_error_class( "SchemaAndDataStatementMixingNotSupported", "25" );
358
+ register_error_class( "25007", klass );
359
+ }
360
+ {
361
+ VALUE klass = define_error_class( "NoActiveSqlTransaction", "25" );
362
+ register_error_class( "25P01", klass );
363
+ }
364
+ {
365
+ VALUE klass = define_error_class( "InFailedSqlTransaction", "25" );
366
+ register_error_class( "25P02", klass );
367
+ }
368
+ {
369
+ VALUE klass = define_error_class( "InvalidSqlStatementName", NULL );
370
+ register_error_class( "26000", klass );
371
+ register_error_class( "26", klass );
372
+ }
373
+ {
374
+ VALUE klass = define_error_class( "TriggeredDataChangeViolation", NULL );
375
+ register_error_class( "27000", klass );
376
+ register_error_class( "27", klass );
377
+ }
378
+ {
379
+ VALUE klass = define_error_class( "InvalidAuthorizationSpecification", NULL );
380
+ register_error_class( "28000", klass );
381
+ register_error_class( "28", klass );
382
+ }
383
+ {
384
+ VALUE klass = define_error_class( "InvalidPassword", "28" );
385
+ register_error_class( "28P01", klass );
386
+ }
387
+ {
388
+ VALUE klass = define_error_class( "DependentPrivilegeDescriptorsStillExist", NULL );
389
+ register_error_class( "2B000", klass );
390
+ register_error_class( "2B", klass );
391
+ }
392
+ {
393
+ VALUE klass = define_error_class( "DependentObjectsStillExist", "2B" );
394
+ register_error_class( "2BP01", klass );
395
+ }
396
+ {
397
+ VALUE klass = define_error_class( "InvalidTransactionTermination", NULL );
398
+ register_error_class( "2D000", klass );
399
+ register_error_class( "2D", klass );
400
+ }
401
+ {
402
+ VALUE klass = define_error_class( "SqlRoutineException", NULL );
403
+ register_error_class( "2F000", klass );
404
+ register_error_class( "2F", klass );
405
+ }
406
+ {
407
+ VALUE klass = define_error_class( "SREFunctionExecutedNoReturnStatement", "2F" );
408
+ register_error_class( "2F005", klass );
409
+ }
410
+ {
411
+ VALUE klass = define_error_class( "SREModifyingSqlDataNotPermitted", "2F" );
412
+ register_error_class( "2F002", klass );
413
+ }
414
+ {
415
+ VALUE klass = define_error_class( "SREProhibitedSqlStatementAttempted", "2F" );
416
+ register_error_class( "2F003", klass );
417
+ }
418
+ {
419
+ VALUE klass = define_error_class( "SREReadingSqlDataNotPermitted", "2F" );
420
+ register_error_class( "2F004", klass );
421
+ }
422
+ {
423
+ VALUE klass = define_error_class( "InvalidCursorName", NULL );
424
+ register_error_class( "34000", klass );
425
+ register_error_class( "34", klass );
426
+ }
427
+ {
428
+ VALUE klass = define_error_class( "ExternalRoutineException", NULL );
429
+ register_error_class( "38000", klass );
430
+ register_error_class( "38", klass );
431
+ }
432
+ {
433
+ VALUE klass = define_error_class( "EREContainingSqlNotPermitted", "38" );
434
+ register_error_class( "38001", klass );
435
+ }
436
+ {
437
+ VALUE klass = define_error_class( "EREModifyingSqlDataNotPermitted", "38" );
438
+ register_error_class( "38002", klass );
439
+ }
440
+ {
441
+ VALUE klass = define_error_class( "EREProhibitedSqlStatementAttempted", "38" );
442
+ register_error_class( "38003", klass );
443
+ }
444
+ {
445
+ VALUE klass = define_error_class( "EREReadingSqlDataNotPermitted", "38" );
446
+ register_error_class( "38004", klass );
447
+ }
448
+ {
449
+ VALUE klass = define_error_class( "ExternalRoutineInvocationException", NULL );
450
+ register_error_class( "39000", klass );
451
+ register_error_class( "39", klass );
452
+ }
453
+ {
454
+ VALUE klass = define_error_class( "ERIEInvalidSqlstateReturned", "39" );
455
+ register_error_class( "39001", klass );
456
+ }
457
+ {
458
+ VALUE klass = define_error_class( "ERIENullValueNotAllowed", "39" );
459
+ register_error_class( "39004", klass );
460
+ }
461
+ {
462
+ VALUE klass = define_error_class( "ERIETriggerProtocolViolated", "39" );
463
+ register_error_class( "39P01", klass );
464
+ }
465
+ {
466
+ VALUE klass = define_error_class( "ERIESrfProtocolViolated", "39" );
467
+ register_error_class( "39P02", klass );
468
+ }
469
+ {
470
+ VALUE klass = define_error_class( "SavepointException", NULL );
471
+ register_error_class( "3B000", klass );
472
+ register_error_class( "3B", klass );
473
+ }
474
+ {
475
+ VALUE klass = define_error_class( "SEInvalidSpecification", "3B" );
476
+ register_error_class( "3B001", klass );
477
+ }
478
+ {
479
+ VALUE klass = define_error_class( "InvalidCatalogName", NULL );
480
+ register_error_class( "3D000", klass );
481
+ register_error_class( "3D", klass );
482
+ }
483
+ {
484
+ VALUE klass = define_error_class( "InvalidSchemaName", NULL );
485
+ register_error_class( "3F000", klass );
486
+ register_error_class( "3F", klass );
487
+ }
488
+ {
489
+ VALUE klass = define_error_class( "TransactionRollback", NULL );
490
+ register_error_class( "40000", klass );
491
+ register_error_class( "40", klass );
492
+ }
493
+ {
494
+ VALUE klass = define_error_class( "TRIntegrityConstraintViolation", "40" );
495
+ register_error_class( "40002", klass );
496
+ }
497
+ {
498
+ VALUE klass = define_error_class( "TRSerializationFailure", "40" );
499
+ register_error_class( "40001", klass );
500
+ }
501
+ {
502
+ VALUE klass = define_error_class( "TRStatementCompletionUnknown", "40" );
503
+ register_error_class( "40003", klass );
504
+ }
505
+ {
506
+ VALUE klass = define_error_class( "TRDeadlockDetected", "40" );
507
+ register_error_class( "40P01", klass );
508
+ }
509
+ {
510
+ VALUE klass = define_error_class( "SyntaxErrorOrAccessRuleViolation", NULL );
511
+ register_error_class( "42000", klass );
512
+ register_error_class( "42", klass );
513
+ }
514
+ {
515
+ VALUE klass = define_error_class( "SyntaxError", "42" );
516
+ register_error_class( "42601", klass );
517
+ }
518
+ {
519
+ VALUE klass = define_error_class( "InsufficientPrivilege", "42" );
520
+ register_error_class( "42501", klass );
521
+ }
522
+ {
523
+ VALUE klass = define_error_class( "CannotCoerce", "42" );
524
+ register_error_class( "42846", klass );
525
+ }
526
+ {
527
+ VALUE klass = define_error_class( "GroupingError", "42" );
528
+ register_error_class( "42803", klass );
529
+ }
530
+ {
531
+ VALUE klass = define_error_class( "WindowingError", "42" );
532
+ register_error_class( "42P20", klass );
533
+ }
534
+ {
535
+ VALUE klass = define_error_class( "InvalidRecursion", "42" );
536
+ register_error_class( "42P19", klass );
537
+ }
538
+ {
539
+ VALUE klass = define_error_class( "InvalidForeignKey", "42" );
540
+ register_error_class( "42830", klass );
541
+ }
542
+ {
543
+ VALUE klass = define_error_class( "InvalidName", "42" );
544
+ register_error_class( "42602", klass );
545
+ }
546
+ {
547
+ VALUE klass = define_error_class( "NameTooLong", "42" );
548
+ register_error_class( "42622", klass );
549
+ }
550
+ {
551
+ VALUE klass = define_error_class( "ReservedName", "42" );
552
+ register_error_class( "42939", klass );
553
+ }
554
+ {
555
+ VALUE klass = define_error_class( "DatatypeMismatch", "42" );
556
+ register_error_class( "42804", klass );
557
+ }
558
+ {
559
+ VALUE klass = define_error_class( "IndeterminateDatatype", "42" );
560
+ register_error_class( "42P18", klass );
561
+ }
562
+ {
563
+ VALUE klass = define_error_class( "CollationMismatch", "42" );
564
+ register_error_class( "42P21", klass );
565
+ }
566
+ {
567
+ VALUE klass = define_error_class( "IndeterminateCollation", "42" );
568
+ register_error_class( "42P22", klass );
569
+ }
570
+ {
571
+ VALUE klass = define_error_class( "WrongObjectType", "42" );
572
+ register_error_class( "42809", klass );
573
+ }
574
+ {
575
+ VALUE klass = define_error_class( "UndefinedColumn", "42" );
576
+ register_error_class( "42703", klass );
577
+ }
578
+ {
579
+ VALUE klass = define_error_class( "UndefinedFunction", "42" );
580
+ register_error_class( "42883", klass );
581
+ }
582
+ {
583
+ VALUE klass = define_error_class( "UndefinedTable", "42" );
584
+ register_error_class( "42P01", klass );
585
+ }
586
+ {
587
+ VALUE klass = define_error_class( "UndefinedParameter", "42" );
588
+ register_error_class( "42P02", klass );
589
+ }
590
+ {
591
+ VALUE klass = define_error_class( "UndefinedObject", "42" );
592
+ register_error_class( "42704", klass );
593
+ }
594
+ {
595
+ VALUE klass = define_error_class( "DuplicateColumn", "42" );
596
+ register_error_class( "42701", klass );
597
+ }
598
+ {
599
+ VALUE klass = define_error_class( "DuplicateCursor", "42" );
600
+ register_error_class( "42P03", klass );
601
+ }
602
+ {
603
+ VALUE klass = define_error_class( "DuplicateDatabase", "42" );
604
+ register_error_class( "42P04", klass );
605
+ }
606
+ {
607
+ VALUE klass = define_error_class( "DuplicateFunction", "42" );
608
+ register_error_class( "42723", klass );
609
+ }
610
+ {
611
+ VALUE klass = define_error_class( "DuplicatePstatement", "42" );
612
+ register_error_class( "42P05", klass );
613
+ }
614
+ {
615
+ VALUE klass = define_error_class( "DuplicateSchema", "42" );
616
+ register_error_class( "42P06", klass );
617
+ }
618
+ {
619
+ VALUE klass = define_error_class( "DuplicateTable", "42" );
620
+ register_error_class( "42P07", klass );
621
+ }
622
+ {
623
+ VALUE klass = define_error_class( "DuplicateAlias", "42" );
624
+ register_error_class( "42712", klass );
625
+ }
626
+ {
627
+ VALUE klass = define_error_class( "DuplicateObject", "42" );
628
+ register_error_class( "42710", klass );
629
+ }
630
+ {
631
+ VALUE klass = define_error_class( "AmbiguousColumn", "42" );
632
+ register_error_class( "42702", klass );
633
+ }
634
+ {
635
+ VALUE klass = define_error_class( "AmbiguousFunction", "42" );
636
+ register_error_class( "42725", klass );
637
+ }
638
+ {
639
+ VALUE klass = define_error_class( "AmbiguousParameter", "42" );
640
+ register_error_class( "42P08", klass );
641
+ }
642
+ {
643
+ VALUE klass = define_error_class( "AmbiguousAlias", "42" );
644
+ register_error_class( "42P09", klass );
645
+ }
646
+ {
647
+ VALUE klass = define_error_class( "InvalidColumnReference", "42" );
648
+ register_error_class( "42P10", klass );
649
+ }
650
+ {
651
+ VALUE klass = define_error_class( "InvalidColumnDefinition", "42" );
652
+ register_error_class( "42611", klass );
653
+ }
654
+ {
655
+ VALUE klass = define_error_class( "InvalidCursorDefinition", "42" );
656
+ register_error_class( "42P11", klass );
657
+ }
658
+ {
659
+ VALUE klass = define_error_class( "InvalidDatabaseDefinition", "42" );
660
+ register_error_class( "42P12", klass );
661
+ }
662
+ {
663
+ VALUE klass = define_error_class( "InvalidFunctionDefinition", "42" );
664
+ register_error_class( "42P13", klass );
665
+ }
666
+ {
667
+ VALUE klass = define_error_class( "InvalidPstatementDefinition", "42" );
668
+ register_error_class( "42P14", klass );
669
+ }
670
+ {
671
+ VALUE klass = define_error_class( "InvalidSchemaDefinition", "42" );
672
+ register_error_class( "42P15", klass );
673
+ }
674
+ {
675
+ VALUE klass = define_error_class( "InvalidTableDefinition", "42" );
676
+ register_error_class( "42P16", klass );
677
+ }
678
+ {
679
+ VALUE klass = define_error_class( "InvalidObjectDefinition", "42" );
680
+ register_error_class( "42P17", klass );
681
+ }
682
+ {
683
+ VALUE klass = define_error_class( "WithCheckOptionViolation", NULL );
684
+ register_error_class( "44000", klass );
685
+ register_error_class( "44", klass );
686
+ }
687
+ {
688
+ VALUE klass = define_error_class( "InsufficientResources", NULL );
689
+ register_error_class( "53000", klass );
690
+ register_error_class( "53", klass );
691
+ }
692
+ {
693
+ VALUE klass = define_error_class( "DiskFull", "53" );
694
+ register_error_class( "53100", klass );
695
+ }
696
+ {
697
+ VALUE klass = define_error_class( "OutOfMemory", "53" );
698
+ register_error_class( "53200", klass );
699
+ }
700
+ {
701
+ VALUE klass = define_error_class( "TooManyConnections", "53" );
702
+ register_error_class( "53300", klass );
703
+ }
704
+ {
705
+ VALUE klass = define_error_class( "ConfigurationLimitExceeded", "53" );
706
+ register_error_class( "53400", klass );
707
+ }
708
+ {
709
+ VALUE klass = define_error_class( "ProgramLimitExceeded", NULL );
710
+ register_error_class( "54000", klass );
711
+ register_error_class( "54", klass );
712
+ }
713
+ {
714
+ VALUE klass = define_error_class( "StatementTooComplex", "54" );
715
+ register_error_class( "54001", klass );
716
+ }
717
+ {
718
+ VALUE klass = define_error_class( "TooManyColumns", "54" );
719
+ register_error_class( "54011", klass );
720
+ }
721
+ {
722
+ VALUE klass = define_error_class( "TooManyArguments", "54" );
723
+ register_error_class( "54023", klass );
724
+ }
725
+ {
726
+ VALUE klass = define_error_class( "ObjectNotInPrerequisiteState", NULL );
727
+ register_error_class( "55000", klass );
728
+ register_error_class( "55", klass );
729
+ }
730
+ {
731
+ VALUE klass = define_error_class( "ObjectInUse", "55" );
732
+ register_error_class( "55006", klass );
733
+ }
734
+ {
735
+ VALUE klass = define_error_class( "CantChangeRuntimeParam", "55" );
736
+ register_error_class( "55P02", klass );
737
+ }
738
+ {
739
+ VALUE klass = define_error_class( "LockNotAvailable", "55" );
740
+ register_error_class( "55P03", klass );
741
+ }
742
+ {
743
+ VALUE klass = define_error_class( "OperatorIntervention", NULL );
744
+ register_error_class( "57000", klass );
745
+ register_error_class( "57", klass );
746
+ }
747
+ {
748
+ VALUE klass = define_error_class( "QueryCanceled", "57" );
749
+ register_error_class( "57014", klass );
750
+ }
751
+ {
752
+ VALUE klass = define_error_class( "AdminShutdown", "57" );
753
+ register_error_class( "57P01", klass );
754
+ }
755
+ {
756
+ VALUE klass = define_error_class( "CrashShutdown", "57" );
757
+ register_error_class( "57P02", klass );
758
+ }
759
+ {
760
+ VALUE klass = define_error_class( "CannotConnectNow", "57" );
761
+ register_error_class( "57P03", klass );
762
+ }
763
+ {
764
+ VALUE klass = define_error_class( "DatabaseDropped", "57" );
765
+ register_error_class( "57P04", klass );
766
+ }
767
+ {
768
+ VALUE klass = define_error_class( "SystemError", NULL );
769
+ register_error_class( "58000", klass );
770
+ register_error_class( "58", klass );
771
+ }
772
+ {
773
+ VALUE klass = define_error_class( "IoError", "58" );
774
+ register_error_class( "58030", klass );
775
+ }
776
+ {
777
+ VALUE klass = define_error_class( "UndefinedFile", "58" );
778
+ register_error_class( "58P01", klass );
779
+ }
780
+ {
781
+ VALUE klass = define_error_class( "DuplicateFile", "58" );
782
+ register_error_class( "58P02", klass );
783
+ }
784
+ {
785
+ VALUE klass = define_error_class( "ConfigFileError", NULL );
786
+ register_error_class( "F0000", klass );
787
+ register_error_class( "F0", klass );
788
+ }
789
+ {
790
+ VALUE klass = define_error_class( "LockFileExists", "F0" );
791
+ register_error_class( "F0001", klass );
792
+ }
793
+ {
794
+ VALUE klass = define_error_class( "FdwError", NULL );
795
+ register_error_class( "HV000", klass );
796
+ register_error_class( "HV", klass );
797
+ }
798
+ {
799
+ VALUE klass = define_error_class( "FdwColumnNameNotFound", "HV" );
800
+ register_error_class( "HV005", klass );
801
+ }
802
+ {
803
+ VALUE klass = define_error_class( "FdwDynamicParameterValueNeeded", "HV" );
804
+ register_error_class( "HV002", klass );
805
+ }
806
+ {
807
+ VALUE klass = define_error_class( "FdwFunctionSequenceError", "HV" );
808
+ register_error_class( "HV010", klass );
809
+ }
810
+ {
811
+ VALUE klass = define_error_class( "FdwInconsistentDescriptorInformation", "HV" );
812
+ register_error_class( "HV021", klass );
813
+ }
814
+ {
815
+ VALUE klass = define_error_class( "FdwInvalidAttributeValue", "HV" );
816
+ register_error_class( "HV024", klass );
817
+ }
818
+ {
819
+ VALUE klass = define_error_class( "FdwInvalidColumnName", "HV" );
820
+ register_error_class( "HV007", klass );
821
+ }
822
+ {
823
+ VALUE klass = define_error_class( "FdwInvalidColumnNumber", "HV" );
824
+ register_error_class( "HV008", klass );
825
+ }
826
+ {
827
+ VALUE klass = define_error_class( "FdwInvalidDataType", "HV" );
828
+ register_error_class( "HV004", klass );
829
+ }
830
+ {
831
+ VALUE klass = define_error_class( "FdwInvalidDataTypeDescriptors", "HV" );
832
+ register_error_class( "HV006", klass );
833
+ }
834
+ {
835
+ VALUE klass = define_error_class( "FdwInvalidDescriptorFieldIdentifier", "HV" );
836
+ register_error_class( "HV091", klass );
837
+ }
838
+ {
839
+ VALUE klass = define_error_class( "FdwInvalidHandle", "HV" );
840
+ register_error_class( "HV00B", klass );
841
+ }
842
+ {
843
+ VALUE klass = define_error_class( "FdwInvalidOptionIndex", "HV" );
844
+ register_error_class( "HV00C", klass );
845
+ }
846
+ {
847
+ VALUE klass = define_error_class( "FdwInvalidOptionName", "HV" );
848
+ register_error_class( "HV00D", klass );
849
+ }
850
+ {
851
+ VALUE klass = define_error_class( "FdwInvalidStringLengthOrBufferLength", "HV" );
852
+ register_error_class( "HV090", klass );
853
+ }
854
+ {
855
+ VALUE klass = define_error_class( "FdwInvalidStringFormat", "HV" );
856
+ register_error_class( "HV00A", klass );
857
+ }
858
+ {
859
+ VALUE klass = define_error_class( "FdwInvalidUseOfNullPointer", "HV" );
860
+ register_error_class( "HV009", klass );
861
+ }
862
+ {
863
+ VALUE klass = define_error_class( "FdwTooManyHandles", "HV" );
864
+ register_error_class( "HV014", klass );
865
+ }
866
+ {
867
+ VALUE klass = define_error_class( "FdwOutOfMemory", "HV" );
868
+ register_error_class( "HV001", klass );
869
+ }
870
+ {
871
+ VALUE klass = define_error_class( "FdwNoSchemas", "HV" );
872
+ register_error_class( "HV00P", klass );
873
+ }
874
+ {
875
+ VALUE klass = define_error_class( "FdwOptionNameNotFound", "HV" );
876
+ register_error_class( "HV00J", klass );
877
+ }
878
+ {
879
+ VALUE klass = define_error_class( "FdwReplyHandle", "HV" );
880
+ register_error_class( "HV00K", klass );
881
+ }
882
+ {
883
+ VALUE klass = define_error_class( "FdwSchemaNotFound", "HV" );
884
+ register_error_class( "HV00Q", klass );
885
+ }
886
+ {
887
+ VALUE klass = define_error_class( "FdwTableNotFound", "HV" );
888
+ register_error_class( "HV00R", klass );
889
+ }
890
+ {
891
+ VALUE klass = define_error_class( "FdwUnableToCreateExecution", "HV" );
892
+ register_error_class( "HV00L", klass );
893
+ }
894
+ {
895
+ VALUE klass = define_error_class( "FdwUnableToCreateReply", "HV" );
896
+ register_error_class( "HV00M", klass );
897
+ }
898
+ {
899
+ VALUE klass = define_error_class( "FdwUnableToEstablishConnection", "HV" );
900
+ register_error_class( "HV00N", klass );
901
+ }
902
+ {
903
+ VALUE klass = define_error_class( "PlpgsqlError", NULL );
904
+ register_error_class( "P0000", klass );
905
+ register_error_class( "P0", klass );
906
+ }
907
+ {
908
+ VALUE klass = define_error_class( "RaiseException", "P0" );
909
+ register_error_class( "P0001", klass );
910
+ }
911
+ {
912
+ VALUE klass = define_error_class( "NoDataFound", "P0" );
913
+ register_error_class( "P0002", klass );
914
+ }
915
+ {
916
+ VALUE klass = define_error_class( "TooManyRows", "P0" );
917
+ register_error_class( "P0003", klass );
918
+ }
919
+ {
920
+ VALUE klass = define_error_class( "InternalError", NULL );
921
+ register_error_class( "XX000", klass );
922
+ register_error_class( "XX", klass );
923
+ }
924
+ {
925
+ VALUE klass = define_error_class( "DataCorrupted", "XX" );
926
+ register_error_class( "XX001", klass );
927
+ }
928
+ {
929
+ VALUE klass = define_error_class( "IndexCorrupted", "XX" );
930
+ register_error_class( "XX002", klass );
931
+ }