pg_jruby 0.14.1.rc2-java → 0.17.1-java

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.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +2 -0
  4. data/BSDL +22 -0
  5. data/ChangeLog +0 -0
  6. data/Contributors.rdoc +45 -0
  7. data/History.rdoc +270 -0
  8. data/LICENSE +56 -0
  9. data/Manifest.txt +51 -5
  10. data/POSTGRES +23 -0
  11. data/README-OS_X.rdoc +68 -0
  12. data/README-Windows.rdoc +67 -0
  13. data/README.ja.rdoc +14 -0
  14. data/README.rdoc +52 -94
  15. data/Rakefile +181 -73
  16. data/Rakefile.cross +273 -0
  17. data/ext/errorcodes.def +931 -0
  18. data/ext/errorcodes.rb +99 -0
  19. data/ext/errorcodes.txt +463 -0
  20. data/ext/extconf.rb +97 -0
  21. data/ext/gvl_wrappers.c +13 -0
  22. data/ext/gvl_wrappers.h +253 -0
  23. data/ext/pg.c +545 -0
  24. data/ext/pg.h +156 -0
  25. data/ext/pg_connection.c +3643 -0
  26. data/ext/pg_errors.c +89 -0
  27. data/ext/pg_result.c +920 -0
  28. data/ext/vc/pg.sln +26 -0
  29. data/ext/vc/pg_18/pg.vcproj +216 -0
  30. data/ext/vc/pg_19/pg_19.vcproj +209 -0
  31. data/lib/pg.rb +12 -18
  32. data/lib/pg/connection.rb +117 -10
  33. data/lib/pg/exceptions.rb +2 -8
  34. data/lib/pg/result.rb +6 -1
  35. data/lib/pg_ext.jar +0 -0
  36. data/sample/array_insert.rb +20 -0
  37. data/sample/async_api.rb +106 -0
  38. data/sample/async_copyto.rb +39 -0
  39. data/sample/async_mixed.rb +56 -0
  40. data/sample/check_conn.rb +21 -0
  41. data/sample/copyfrom.rb +81 -0
  42. data/sample/copyto.rb +19 -0
  43. data/sample/cursor.rb +21 -0
  44. data/sample/disk_usage_report.rb +186 -0
  45. data/sample/issue-119.rb +94 -0
  46. data/sample/losample.rb +69 -0
  47. data/sample/minimal-testcase.rb +17 -0
  48. data/sample/notify_wait.rb +72 -0
  49. data/sample/pg_statistics.rb +294 -0
  50. data/sample/replication_monitor.rb +231 -0
  51. data/sample/test_binary_values.rb +33 -0
  52. data/sample/wal_shipper.rb +434 -0
  53. data/sample/warehouse_partitions.rb +320 -0
  54. data/spec/data/expected_trace.out +26 -0
  55. data/spec/data/random_binary_data +0 -0
  56. data/spec/lib/helpers.rb +350 -0
  57. data/spec/pg/connection_spec.rb +1276 -0
  58. data/spec/pg/result_spec.rb +345 -0
  59. data/spec/pg_spec.rb +44 -0
  60. metadata +136 -90
  61. metadata.gz.sig +0 -0
  62. data/CHANGELOG.rdoc +0 -7
  63. data/bin/pg +0 -3
@@ -0,0 +1,273 @@
1
+ #!/usr/bin/env rake
2
+
3
+ require 'uri'
4
+ require 'tempfile'
5
+ require 'rbconfig'
6
+ require 'rake/clean'
7
+ require 'rake/extensiontask'
8
+ require 'rake/extensioncompiler'
9
+ require 'ostruct'
10
+
11
+ MISCDIR = BASEDIR + 'misc'
12
+
13
+ NUM_CPUS = if File.exist?('/proc/cpuinfo')
14
+ File.read('/proc/cpuinfo').scan('processor').length
15
+ elsif RUBY_PLATFORM.include?( 'darwin' )
16
+ `system_profiler SPHardwareDataType | grep 'Cores' | awk '{print $5}'`.chomp
17
+ else
18
+ 1
19
+ end
20
+
21
+ class CrossLibrary < OpenStruct
22
+ include Rake::DSL
23
+
24
+ def initialize(for_platform, openssl_config)
25
+ super()
26
+
27
+ self.for_platform = for_platform
28
+ self.openssl_config = openssl_config
29
+
30
+ # Cross-compilation constants
31
+ self.openssl_version = ENV['OPENSSL_VERSION'] || '1.0.1e'
32
+ self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '9.2.3'
33
+
34
+ self.compile_home = Pathname( "./build" ).expand_path
35
+ self.static_sourcesdir = compile_home + 'sources'
36
+ self.static_builddir = compile_home + 'builds' + for_platform
37
+
38
+ # Static OpenSSL build vars
39
+ self.static_openssl_builddir = static_builddir + "openssl-#{openssl_version}"
40
+
41
+ self.openssl_source_uri =
42
+ URI( "http://www.openssl.org/source/openssl-#{openssl_version}.tar.gz" )
43
+ self.openssl_tarball = static_sourcesdir + File.basename( openssl_source_uri.path )
44
+ self.openssl_makefile = static_openssl_builddir + 'Makefile'
45
+
46
+ self.libssleay32 = static_openssl_builddir + 'libssleay32.a'
47
+ self.libeay32 = static_openssl_builddir + 'libeay32.a'
48
+
49
+ self.openssl_patches = Rake::FileList[ (MISCDIR + "openssl-#{openssl_version}.*.patch").to_s ]
50
+
51
+ # Static PostgreSQL build vars
52
+ self.static_postgresql_builddir = static_builddir + "postgresql-#{postgresql_version}"
53
+ self.postgresql_source_uri = begin
54
+ uristring = "http://ftp.postgresql.org/pub/source/v%s/postgresql-%s.tar.bz2" %
55
+ [ postgresql_version, postgresql_version ]
56
+ URI( uristring )
57
+ end
58
+ self.postgresql_tarball = static_sourcesdir + File.basename( postgresql_source_uri.path )
59
+
60
+ self.static_postgresql_srcdir = static_postgresql_builddir + 'src'
61
+ self.static_postgresql_libdir = static_postgresql_srcdir + 'interfaces/libpq'
62
+ self.static_postgresql_incdir = static_postgresql_srcdir + 'include'
63
+
64
+ self.postgresql_global_makefile = static_postgresql_srcdir + 'Makefile.global'
65
+ self.postgresql_shlib_makefile = static_postgresql_srcdir + 'Makefile.shlib'
66
+ self.postgresql_shlib_mf_orig = static_postgresql_srcdir + 'Makefile.shlib.orig'
67
+ self.postgresql_lib = static_postgresql_libdir + 'libpq.a'
68
+ self.postgresql_patches = Rake::FileList[ (MISCDIR + "postgresql-#{postgresql_version}.*.patch").to_s ]
69
+
70
+ # Use rake-compilers config.yml to determine the toolchain that was used
71
+ # to build Ruby for this platform.
72
+ self.host_platform = begin
73
+ config_file = YAML.load_file(File.expand_path("~/.rake-compiler/config.yml"))
74
+ _, rbfile = config_file.find{|key, fname| key.start_with?("rbconfig-#{for_platform}-") }
75
+ IO.read(rbfile).match(/CONFIG\["CC"\] = "(.*)"/)[1].sub(/\-gcc/, '')
76
+ rescue
77
+ nil
78
+ end
79
+
80
+
81
+ # clean intermediate files and folders
82
+ CLEAN.include( static_builddir.to_s )
83
+
84
+
85
+ ENV['RUBY_CC_VERSION'] ||= '1.8.7:1.9.3:2.0.0'
86
+
87
+ def download(url, save_to)
88
+ part = save_to+".part"
89
+ sh "wget #{url.to_s.inspect} -O #{part.inspect} || curl #{url.to_s.inspect} -o #{part.inspect}"
90
+ FileUtils.mv part, save_to
91
+ end
92
+
93
+ def run(*args)
94
+ sh *args
95
+ end
96
+
97
+ #####################################################################
98
+ ### C R O S S - C O M P I L A T I O N - T A S K S
99
+ #####################################################################
100
+
101
+
102
+ directory static_sourcesdir.to_s
103
+
104
+ #
105
+ # Static OpenSSL build tasks
106
+ #
107
+ directory static_openssl_builddir.to_s
108
+
109
+ # openssl source file should be stored there
110
+ file openssl_tarball => static_sourcesdir do |t|
111
+ download( openssl_source_uri, t.name )
112
+ end
113
+
114
+ # Extract the openssl builds
115
+ file static_openssl_builddir => openssl_tarball do |t|
116
+ puts "extracting %s to %s" % [ openssl_tarball, static_openssl_builddir.parent ]
117
+ static_openssl_builddir.mkpath
118
+ run 'tar', '-xzf', openssl_tarball.to_s, '-C', static_openssl_builddir.parent.to_s
119
+ openssl_makefile.unlink if openssl_makefile.exist?
120
+
121
+ openssl_patches.each do |patchfile|
122
+ puts " applying patch #{patchfile}..."
123
+ run 'patch', '-Np1', '-d', static_openssl_builddir.to_s,
124
+ '-i', File.expand_path( patchfile, BASEDIR )
125
+ end
126
+ end
127
+
128
+ self.cmd_prelude = [
129
+ 'env',
130
+ "CC=#{host_platform}-gcc",
131
+ "CFLAGS=-DDSO_WIN32",
132
+ "AR=#{host_platform}-ar",
133
+ "RANLIB=#{host_platform}-ranlib"
134
+ ]
135
+
136
+
137
+ # generate the makefile in a clean build location
138
+ file openssl_makefile => static_openssl_builddir do |t|
139
+ Dir.chdir( static_openssl_builddir ) do
140
+ cmd = cmd_prelude.dup
141
+ cmd << "./Configure" << openssl_config
142
+
143
+ run( *cmd )
144
+ end
145
+ end
146
+
147
+ desc "compile static openssl libraries"
148
+ task :openssl_libs => [ libssleay32, libeay32 ]
149
+
150
+ task :compile_static_openssl => openssl_makefile do |t|
151
+ Dir.chdir( static_openssl_builddir ) do
152
+ cmd = cmd_prelude.dup
153
+ cmd << 'make' << "-j#{NUM_CPUS}" << 'build_libs'
154
+
155
+ run( *cmd )
156
+ end
157
+ end
158
+
159
+ desc "compile static #{libeay32}"
160
+ file libeay32 => :compile_static_openssl do |t|
161
+ FileUtils.cp( static_openssl_builddir + 'libcrypto.a', libeay32.to_s )
162
+ end
163
+
164
+ desc "compile static #{libssleay32}"
165
+ file libssleay32 => :compile_static_openssl do |t|
166
+ FileUtils.cp( static_openssl_builddir + 'libssl.a', libssleay32.to_s )
167
+ end
168
+
169
+
170
+
171
+ #
172
+ # Static PostgreSQL build tasks
173
+ #
174
+ directory static_postgresql_builddir.to_s
175
+
176
+
177
+ # postgresql source file should be stored there
178
+ file postgresql_tarball => static_sourcesdir do |t|
179
+ download( postgresql_source_uri, t.name )
180
+ end
181
+
182
+ # Extract the postgresql sources
183
+ file static_postgresql_builddir => postgresql_tarball do |t|
184
+ puts "extracting %s to %s" % [ postgresql_tarball, static_postgresql_builddir.parent ]
185
+ static_postgresql_builddir.mkpath
186
+ run 'tar', '-xjf', postgresql_tarball.to_s, '-C', static_postgresql_builddir.parent.to_s
187
+ mv postgresql_shlib_makefile, postgresql_shlib_mf_orig
188
+
189
+ postgresql_patches.each do |patchfile|
190
+ puts " applying patch #{patchfile}..."
191
+ run 'patch', '-Np1', '-d', static_postgresql_builddir.to_s,
192
+ '-i', File.expand_path( patchfile, BASEDIR )
193
+ end
194
+ end
195
+
196
+ # generate the makefile in a clean build location
197
+ file postgresql_global_makefile => [ static_postgresql_builddir, :openssl_libs ] do |t|
198
+ options = [
199
+ "--target=#{host_platform}",
200
+ "--host=#{host_platform}",
201
+ '--with-openssl',
202
+ '--without-zlib',
203
+ '--disable-shared',
204
+ ]
205
+
206
+ Dir.chdir( static_postgresql_builddir ) do
207
+ configure_path = static_postgresql_builddir + 'configure'
208
+ cmd = [ configure_path.to_s, *options ]
209
+ cmd << "CFLAGS=-L#{static_openssl_builddir}"
210
+ cmd << "LDFLAGS=-L#{static_openssl_builddir}"
211
+ cmd << "LDFLAGS_SL=-L#{static_openssl_builddir}"
212
+ cmd << "LIBS=-lwsock32 -lgdi32"
213
+ cmd << "CPPFLAGS=-I#{static_openssl_builddir}/include"
214
+
215
+ run( *cmd )
216
+ end
217
+ end
218
+
219
+
220
+ # patch the Makefile.shlib -- depend on the build dir so it's only
221
+ # rewritten if the tarball is re-extracted.
222
+ file postgresql_shlib_makefile => postgresql_shlib_mf_orig do |t|
223
+ tf = Tempfile.new( postgresql_shlib_makefile.basename.to_s )
224
+ postgresql_shlib_mf_orig.open( File::RDONLY ) do |ifh|
225
+ ifh.each_line do |line|
226
+ tf.print( line.sub(/^(\s*haslibarule\s*=\s*yes)/, "# \\1 ") )
227
+ end
228
+ end
229
+ tf.close
230
+
231
+ FileUtils.mv( tf.path, t.name, :verbose => $puts )
232
+ end
233
+
234
+
235
+ # make libpq.a
236
+ task postgresql_lib => [ postgresql_global_makefile, postgresql_shlib_makefile ] do |t|
237
+ Dir.chdir( postgresql_lib.dirname ) do
238
+ sh 'make', "-j#{NUM_CPUS}", postgresql_lib.basename.to_s, 'PORTNAME=win32'
239
+ end
240
+ end
241
+
242
+
243
+ #desc 'compile static libpg.a'
244
+ task :static_libpq => postgresql_lib
245
+ end
246
+ end
247
+
248
+ if File.exist?(File.expand_path("~/.rake-compiler/config.yml"))
249
+ CrossLibraries = [
250
+ ['i386-mingw32', 'mingw'],
251
+ ['x64-mingw32', 'mingw64'],
252
+ ].map do |platform, openssl_config|
253
+ CrossLibrary.new platform, openssl_config
254
+ end
255
+ else
256
+ $stderr.puts "Cross-compilation disabled -- rake-compiler not properly installed"
257
+ CrossLibraries = []
258
+ end
259
+
260
+ desc 'cross compile pg for win32'
261
+ task :cross do
262
+ ENV['CROSS_COMPILING'] = 'yes'
263
+ end
264
+ task :cross => [ :mingw32, :static_libpq ]
265
+
266
+ task :mingw32 do
267
+ # Use Rake::ExtensionCompiler helpers to find the proper host
268
+ unless Rake::ExtensionCompiler.mingw_host then
269
+ warn "You need to install mingw32 cross compile functionality to be able to continue."
270
+ warn "Please refer to your distribution/package manager documentation about installation."
271
+ fail
272
+ end
273
+ 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
+ }