pg_jruby 0.14.1.rc2-java → 0.17.1-java

Sign up to get free protection for your applications and to get access to all the features.
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
+ }