pg 0.18.2 → 1.5.4
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.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data/.appveyor.yml +42 -0
- data/.gems +6 -0
- data/.github/workflows/binary-gems.yml +117 -0
- data/.github/workflows/source-gem.yml +141 -0
- data/.gitignore +22 -0
- data/.hgsigs +34 -0
- data/.hgtags +41 -0
- data/.irbrc +23 -0
- data/.pryrc +23 -0
- data/.tm_properties +21 -0
- data/.travis.yml +49 -0
- data/BSDL +2 -2
- data/Gemfile +14 -0
- data/History.md +884 -0
- data/Manifest.txt +8 -21
- data/README-Windows.rdoc +17 -28
- data/README.ja.md +300 -0
- data/README.md +286 -0
- data/Rakefile +40 -131
- data/Rakefile.cross +88 -70
- data/certs/ged.pem +24 -0
- data/certs/larskanis-2022.pem +26 -0
- data/certs/larskanis-2023.pem +24 -0
- data/ext/errorcodes.def +113 -0
- data/ext/errorcodes.rb +1 -1
- data/ext/errorcodes.txt +36 -2
- data/ext/extconf.rb +124 -54
- data/ext/gvl_wrappers.c +8 -0
- data/ext/gvl_wrappers.h +44 -33
- data/ext/pg.c +227 -201
- data/ext/pg.h +99 -100
- data/ext/pg_binary_decoder.c +164 -16
- data/ext/pg_binary_encoder.c +249 -22
- data/ext/pg_coder.c +189 -44
- data/ext/pg_connection.c +1874 -1174
- data/ext/pg_copy_coder.c +398 -42
- data/ext/pg_errors.c +1 -1
- data/ext/pg_record_coder.c +522 -0
- data/ext/pg_result.c +727 -232
- data/ext/pg_text_decoder.c +629 -43
- data/ext/pg_text_encoder.c +269 -102
- data/ext/pg_tuple.c +572 -0
- data/ext/pg_type_map.c +64 -23
- data/ext/pg_type_map_all_strings.c +21 -7
- data/ext/pg_type_map_by_class.c +59 -27
- data/ext/pg_type_map_by_column.c +86 -43
- data/ext/pg_type_map_by_mri_type.c +49 -20
- data/ext/pg_type_map_by_oid.c +62 -29
- data/ext/pg_type_map_in_ruby.c +56 -22
- data/ext/{util.c → pg_util.c} +12 -12
- data/ext/{util.h → pg_util.h} +2 -2
- data/lib/pg/basic_type_map_based_on_result.rb +67 -0
- data/lib/pg/basic_type_map_for_queries.rb +198 -0
- data/lib/pg/basic_type_map_for_results.rb +104 -0
- data/lib/pg/basic_type_registry.rb +299 -0
- data/lib/pg/binary_decoder/date.rb +9 -0
- data/lib/pg/binary_decoder/timestamp.rb +26 -0
- data/lib/pg/binary_encoder/timestamp.rb +20 -0
- data/lib/pg/coder.rb +36 -13
- data/lib/pg/connection.rb +797 -77
- data/lib/pg/exceptions.rb +16 -2
- data/lib/pg/result.rb +24 -7
- data/lib/pg/text_decoder/date.rb +18 -0
- data/lib/pg/text_decoder/inet.rb +9 -0
- data/lib/pg/text_decoder/json.rb +14 -0
- data/lib/pg/text_decoder/numeric.rb +9 -0
- data/lib/pg/text_decoder/timestamp.rb +30 -0
- data/lib/pg/text_encoder/date.rb +12 -0
- data/lib/pg/text_encoder/inet.rb +28 -0
- data/lib/pg/text_encoder/json.rb +14 -0
- data/lib/pg/text_encoder/numeric.rb +9 -0
- data/lib/pg/text_encoder/timestamp.rb +24 -0
- data/lib/pg/tuple.rb +30 -0
- data/lib/pg/type_map_by_column.rb +3 -2
- data/lib/pg/version.rb +4 -0
- data/lib/pg.rb +106 -41
- data/misc/openssl-pg-segfault.rb +31 -0
- data/misc/postgres/History.txt +9 -0
- data/misc/postgres/Manifest.txt +5 -0
- data/misc/postgres/README.txt +21 -0
- data/misc/postgres/Rakefile +21 -0
- data/misc/postgres/lib/postgres.rb +16 -0
- data/misc/ruby-pg/History.txt +9 -0
- data/misc/ruby-pg/Manifest.txt +5 -0
- data/misc/ruby-pg/README.txt +21 -0
- data/misc/ruby-pg/Rakefile +21 -0
- data/misc/ruby-pg/lib/ruby/pg.rb +16 -0
- data/pg.gemspec +34 -0
- data/rakelib/task_extension.rb +46 -0
- data/sample/array_insert.rb +1 -1
- data/sample/async_api.rb +4 -8
- data/sample/async_copyto.rb +1 -1
- data/sample/async_mixed.rb +1 -1
- data/sample/check_conn.rb +1 -1
- data/sample/copydata.rb +71 -0
- data/sample/copyfrom.rb +1 -1
- data/sample/copyto.rb +1 -1
- data/sample/cursor.rb +1 -1
- data/sample/disk_usage_report.rb +6 -15
- data/sample/issue-119.rb +2 -2
- data/sample/losample.rb +1 -1
- data/sample/minimal-testcase.rb +2 -2
- data/sample/notify_wait.rb +1 -1
- data/sample/pg_statistics.rb +6 -15
- data/sample/replication_monitor.rb +9 -18
- data/sample/test_binary_values.rb +1 -1
- data/sample/wal_shipper.rb +2 -2
- data/sample/warehouse_partitions.rb +8 -17
- data/translation/.po4a-version +7 -0
- data/translation/po/all.pot +936 -0
- data/translation/po/ja.po +1036 -0
- data/translation/po4a.cfg +12 -0
- data.tar.gz.sig +0 -0
- metadata +130 -201
- metadata.gz.sig +0 -0
- data/ChangeLog +0 -5545
- data/History.rdoc +0 -313
- data/README.ja.rdoc +0 -14
- data/README.rdoc +0 -161
- data/lib/pg/basic_type_mapping.rb +0 -399
- data/lib/pg/constants.rb +0 -11
- data/lib/pg/text_decoder.rb +0 -42
- data/lib/pg/text_encoder.rb +0 -27
- data/spec/data/expected_trace.out +0 -26
- data/spec/data/random_binary_data +0 -0
- data/spec/helpers.rb +0 -355
- data/spec/pg/basic_type_mapping_spec.rb +0 -251
- data/spec/pg/connection_spec.rb +0 -1535
- data/spec/pg/result_spec.rb +0 -449
- data/spec/pg/type_map_by_class_spec.rb +0 -138
- data/spec/pg/type_map_by_column_spec.rb +0 -222
- data/spec/pg/type_map_by_mri_type_spec.rb +0 -136
- data/spec/pg/type_map_by_oid_spec.rb +0 -149
- data/spec/pg/type_map_in_ruby_spec.rb +0 -164
- data/spec/pg/type_map_spec.rb +0 -22
- data/spec/pg/type_spec.rb +0 -688
- data/spec/pg_spec.rb +0 -50
data/Rakefile.cross
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
# -*- rake -*-
|
|
2
2
|
|
|
3
3
|
require 'uri'
|
|
4
4
|
require 'tempfile'
|
|
@@ -7,6 +7,7 @@ require 'rake/clean'
|
|
|
7
7
|
require 'rake/extensiontask'
|
|
8
8
|
require 'rake/extensioncompiler'
|
|
9
9
|
require 'ostruct'
|
|
10
|
+
require_relative 'rakelib/task_extension'
|
|
10
11
|
|
|
11
12
|
MISCDIR = BASEDIR + 'misc'
|
|
12
13
|
|
|
@@ -20,20 +21,34 @@ end
|
|
|
20
21
|
|
|
21
22
|
class CrossLibrary < OpenStruct
|
|
22
23
|
include Rake::DSL
|
|
24
|
+
prepend TaskExtension
|
|
23
25
|
|
|
24
|
-
def initialize(for_platform, openssl_config)
|
|
26
|
+
def initialize(for_platform, openssl_config, toolchain)
|
|
25
27
|
super()
|
|
26
28
|
|
|
27
29
|
self.for_platform = for_platform
|
|
28
30
|
self.openssl_config = openssl_config
|
|
31
|
+
self.host_platform = toolchain
|
|
29
32
|
|
|
30
33
|
# Cross-compilation constants
|
|
31
|
-
self.openssl_version = ENV['OPENSSL_VERSION'] || '1.0
|
|
32
|
-
self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
self.openssl_version = ENV['OPENSSL_VERSION'] || '3.1.0'
|
|
35
|
+
self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '15.2'
|
|
36
|
+
|
|
37
|
+
# Check if symlinks work in the current working directory.
|
|
38
|
+
# This fails, if rake-compiler-dock is running on a Windows box.
|
|
39
|
+
begin
|
|
40
|
+
FileUtils.rm_f '.test_symlink'
|
|
41
|
+
FileUtils.ln_s '/', '.test_symlink'
|
|
42
|
+
rescue NotImplementedError, SystemCallError
|
|
43
|
+
# Symlinks don't work -> use home directory instead
|
|
44
|
+
self.compile_home = Pathname( "~/.ruby-pg-build" ).expand_path
|
|
45
|
+
else
|
|
46
|
+
self.compile_home = Pathname( "./build" ).expand_path
|
|
47
|
+
end
|
|
35
48
|
self.static_sourcesdir = compile_home + 'sources'
|
|
36
49
|
self.static_builddir = compile_home + 'builds' + for_platform
|
|
50
|
+
CLOBBER.include( static_sourcesdir )
|
|
51
|
+
CLEAN.include( static_builddir )
|
|
37
52
|
|
|
38
53
|
# Static OpenSSL build vars
|
|
39
54
|
self.static_openssl_builddir = static_builddir + "openssl-#{openssl_version}"
|
|
@@ -43,8 +58,8 @@ class CrossLibrary < OpenStruct
|
|
|
43
58
|
self.openssl_tarball = static_sourcesdir + File.basename( openssl_source_uri.path )
|
|
44
59
|
self.openssl_makefile = static_openssl_builddir + 'Makefile'
|
|
45
60
|
|
|
46
|
-
self.
|
|
47
|
-
self.
|
|
61
|
+
self.libssl = static_openssl_builddir + 'libssl.a'
|
|
62
|
+
self.libcrypto = static_openssl_builddir + 'libcrypto.a'
|
|
48
63
|
|
|
49
64
|
self.openssl_patches = Rake::FileList[ (MISCDIR + "openssl-#{openssl_version}.*.patch").to_s ]
|
|
50
65
|
|
|
@@ -67,33 +82,9 @@ class CrossLibrary < OpenStruct
|
|
|
67
82
|
self.postgresql_lib = static_postgresql_libdir + 'libpq.dll'
|
|
68
83
|
self.postgresql_patches = Rake::FileList[ (MISCDIR + "postgresql-#{postgresql_version}.*.patch").to_s ]
|
|
69
84
|
|
|
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
85
|
# clean intermediate files and folders
|
|
82
86
|
CLEAN.include( static_builddir.to_s )
|
|
83
87
|
|
|
84
|
-
|
|
85
|
-
ENV['RUBY_CC_VERSION'] ||= '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
88
|
#####################################################################
|
|
98
89
|
### C R O S S - C O M P I L A T I O N - T A S K S
|
|
99
90
|
#####################################################################
|
|
@@ -126,11 +117,9 @@ class CrossLibrary < OpenStruct
|
|
|
126
117
|
end
|
|
127
118
|
|
|
128
119
|
self.cmd_prelude = [
|
|
129
|
-
|
|
130
|
-
"
|
|
120
|
+
"env",
|
|
121
|
+
"CROSS_COMPILE=#{host_platform}-",
|
|
131
122
|
"CFLAGS=-DDSO_WIN32",
|
|
132
|
-
"AR=#{host_platform}-ar",
|
|
133
|
-
"RANLIB=#{host_platform}-ranlib"
|
|
134
123
|
]
|
|
135
124
|
|
|
136
125
|
|
|
@@ -138,16 +127,16 @@ class CrossLibrary < OpenStruct
|
|
|
138
127
|
file openssl_makefile => static_openssl_builddir do |t|
|
|
139
128
|
chdir( static_openssl_builddir ) do
|
|
140
129
|
cmd = cmd_prelude.dup
|
|
141
|
-
cmd << "./Configure" << openssl_config
|
|
130
|
+
cmd << "./Configure" << "-static" << openssl_config
|
|
142
131
|
|
|
143
132
|
run( *cmd )
|
|
144
133
|
end
|
|
145
134
|
end
|
|
146
135
|
|
|
147
136
|
desc "compile static openssl libraries"
|
|
148
|
-
task
|
|
137
|
+
task "openssl_libs:#{for_platform}" => [ libssl, libcrypto ]
|
|
149
138
|
|
|
150
|
-
task
|
|
139
|
+
task "compile_static_openssl:#{for_platform}" => openssl_makefile do |t|
|
|
151
140
|
chdir( static_openssl_builddir ) do
|
|
152
141
|
cmd = cmd_prelude.dup
|
|
153
142
|
cmd << 'make' << "-j#{NUM_CPUS}" << 'build_libs'
|
|
@@ -156,15 +145,11 @@ class CrossLibrary < OpenStruct
|
|
|
156
145
|
end
|
|
157
146
|
end
|
|
158
147
|
|
|
159
|
-
desc "compile static #{
|
|
160
|
-
file
|
|
161
|
-
FileUtils.cp( static_openssl_builddir + 'libcrypto.a', libeay32.to_s )
|
|
162
|
-
end
|
|
148
|
+
desc "compile static #{libssl}"
|
|
149
|
+
file libssl => "compile_static_openssl:#{for_platform}"
|
|
163
150
|
|
|
164
|
-
desc "compile static #{
|
|
165
|
-
file
|
|
166
|
-
FileUtils.cp( static_openssl_builddir + 'libssl.a', libssleay32.to_s )
|
|
167
|
-
end
|
|
151
|
+
desc "compile static #{libcrypto}"
|
|
152
|
+
file libcrypto => "compile_static_openssl:#{for_platform}"
|
|
168
153
|
|
|
169
154
|
|
|
170
155
|
|
|
@@ -193,7 +178,7 @@ class CrossLibrary < OpenStruct
|
|
|
193
178
|
end
|
|
194
179
|
|
|
195
180
|
# generate the makefile in a clean build location
|
|
196
|
-
file postgresql_global_makefile => [ static_postgresql_builddir,
|
|
181
|
+
file postgresql_global_makefile => [ static_postgresql_builddir, "openssl_libs:#{for_platform}" ] do |t|
|
|
197
182
|
options = [
|
|
198
183
|
"--target=#{host_platform}",
|
|
199
184
|
"--host=#{host_platform}",
|
|
@@ -207,7 +192,7 @@ class CrossLibrary < OpenStruct
|
|
|
207
192
|
cmd << "CFLAGS=-L#{static_openssl_builddir}"
|
|
208
193
|
cmd << "LDFLAGS=-L#{static_openssl_builddir}"
|
|
209
194
|
cmd << "LDFLAGS_SL=-L#{static_openssl_builddir}"
|
|
210
|
-
cmd << "LIBS=-lwsock32 -lgdi32"
|
|
195
|
+
cmd << "LIBS=-lwsock32 -lgdi32 -lws2_32 -lcrypt32"
|
|
211
196
|
cmd << "CPPFLAGS=-I#{static_openssl_builddir}/include"
|
|
212
197
|
|
|
213
198
|
run( *cmd )
|
|
@@ -217,17 +202,25 @@ class CrossLibrary < OpenStruct
|
|
|
217
202
|
|
|
218
203
|
# make libpq.dll
|
|
219
204
|
task postgresql_lib => [ postgresql_global_makefile ] do |t|
|
|
205
|
+
# Work around missing dependency to libcommon in PostgreSQL-9.4.0
|
|
206
|
+
chdir( static_postgresql_srcdir + "common" ) do
|
|
207
|
+
sh 'make', "-j#{NUM_CPUS}"
|
|
208
|
+
end
|
|
209
|
+
chdir( static_postgresql_srcdir + "port" ) do
|
|
210
|
+
sh 'make', "-j#{NUM_CPUS}"
|
|
211
|
+
end
|
|
212
|
+
|
|
220
213
|
chdir( postgresql_lib.dirname ) do
|
|
221
214
|
sh 'make',
|
|
222
215
|
"-j#{NUM_CPUS}",
|
|
223
216
|
postgresql_lib.basename.to_s,
|
|
224
|
-
'SHLIB_LINK=-
|
|
217
|
+
'SHLIB_LINK=-lssl -lcrypto -lcrypt32 -lgdi32 -lsecur32 -lwsock32 -lws2_32'
|
|
225
218
|
end
|
|
226
219
|
end
|
|
227
220
|
|
|
228
221
|
|
|
229
222
|
#desc 'compile libpg.a'
|
|
230
|
-
task
|
|
223
|
+
task "native:#{for_platform}" => postgresql_lib
|
|
231
224
|
|
|
232
225
|
# copy libpq.dll to lib dir
|
|
233
226
|
dest_libpq = "lib/#{for_platform}/#{postgresql_lib.basename}"
|
|
@@ -242,22 +235,28 @@ class CrossLibrary < OpenStruct
|
|
|
242
235
|
cp postgresql_lib, stage_libpq
|
|
243
236
|
end
|
|
244
237
|
end
|
|
245
|
-
end
|
|
246
238
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
].map do |platform, openssl_config|
|
|
252
|
-
CrossLibrary.new platform, openssl_config
|
|
239
|
+
def download(url, save_to)
|
|
240
|
+
part = save_to+".part"
|
|
241
|
+
sh "wget #{url.to_s.inspect} -O #{part.inspect} || curl #{url.to_s.inspect} -o #{part.inspect}"
|
|
242
|
+
FileUtils.mv part, save_to
|
|
253
243
|
end
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
244
|
+
|
|
245
|
+
def run(*args)
|
|
246
|
+
sh(*args)
|
|
247
|
+
end
|
|
248
|
+
end
|
|
249
|
+
|
|
250
|
+
CrossLibraries = [
|
|
251
|
+
['x64-mingw-ucrt', 'mingw64', 'x86_64-w64-mingw32'],
|
|
252
|
+
['x86-mingw32', 'mingw', 'i686-w64-mingw32'],
|
|
253
|
+
['x64-mingw32', 'mingw64', 'x86_64-w64-mingw32'],
|
|
254
|
+
].map do |platform, openssl_config, toolchain|
|
|
255
|
+
CrossLibrary.new platform, openssl_config, toolchain
|
|
257
256
|
end
|
|
258
257
|
|
|
259
258
|
desc 'cross compile pg for win32'
|
|
260
|
-
task :cross => [ :mingw32
|
|
259
|
+
task :cross => [ :mingw32 ]
|
|
261
260
|
|
|
262
261
|
task :mingw32 do
|
|
263
262
|
# Use Rake::ExtensionCompiler helpers to find the proper host
|
|
@@ -268,13 +267,32 @@ task :mingw32 do
|
|
|
268
267
|
end
|
|
269
268
|
end
|
|
270
269
|
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
270
|
+
task 'gem:windows:prepare' do
|
|
271
|
+
require 'io/console'
|
|
272
|
+
require 'rake_compiler_dock'
|
|
273
|
+
|
|
274
|
+
# Copy gem signing key and certs to be accessible from the docker container
|
|
275
|
+
mkdir_p 'build/gem'
|
|
276
|
+
sh "cp ~/.gem/gem-*.pem build/gem/ || true"
|
|
277
|
+
sh "bundle package"
|
|
278
|
+
begin
|
|
279
|
+
OpenSSL::PKey.read(File.read(File.expand_path("~/.gem/gem-private_key.pem")), ENV["GEM_PRIVATE_KEY_PASSPHRASE"] || "")
|
|
280
|
+
rescue OpenSSL::PKey::PKeyError
|
|
281
|
+
ENV["GEM_PRIVATE_KEY_PASSPHRASE"] = STDIN.getpass("Enter passphrase of gem signature key: ")
|
|
282
|
+
retry
|
|
283
|
+
end
|
|
284
|
+
end
|
|
276
285
|
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
286
|
+
CrossLibraries.each do |xlib|
|
|
287
|
+
platform = xlib.for_platform
|
|
288
|
+
desc "Build fat binary gem for platform #{platform}"
|
|
289
|
+
task "gem:windows:#{platform}" => ['gem:windows:prepare', xlib.openssl_tarball, xlib.postgresql_tarball] do
|
|
290
|
+
RakeCompilerDock.sh <<-EOT, platform: platform
|
|
291
|
+
(cp build/gem/gem-*.pem ~/.gem/ || true) &&
|
|
292
|
+
bundle install --local &&
|
|
293
|
+
rake native:#{platform} pkg/#{$gem_spec.full_name}-#{platform}.gem MAKE="make -j`nproc`" RUBY_CC_VERSION=3.2.0:3.1.0:3.0.0:2.7.0:2.6.0:2.5.0
|
|
294
|
+
EOT
|
|
295
|
+
end
|
|
296
|
+
desc "Build the windows binary gems"
|
|
297
|
+
multitask 'gem:windows' => "gem:windows:#{platform}"
|
|
280
298
|
end
|
data/certs/ged.pem
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIID+DCCAmCgAwIBAgIBBDANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
|
|
3
|
+
REM9RmFlcmllTVVEL0RDPW9yZzAeFw0yMjAxMDcyMzU4MTRaFw0yMzAxMDcyMzU4
|
|
4
|
+
MTRaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
|
|
5
|
+
hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
|
|
6
|
+
L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
|
|
7
|
+
M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
|
|
8
|
+
5PU2AEbf04GGSrmqADGWXeaslaoRdb1fu/0M5qfPTRn5V39sWD9umuDAF9qqil/x
|
|
9
|
+
Sl6phTvgBrG8GExHbNZpLARd3xrBYLEFsX7RvBn2UPfgsrtvpdXjsHGfpT3IPN+B
|
|
10
|
+
vQ66lts4alKC69TE5cuKasWBm+16A4aEe3XdZBRNmtOu/g81gvwA7fkJHKllJuaI
|
|
11
|
+
dXzdHqq+zbGZVSQ7pRYHYomD0IiDe1DbIouFnPWmagaBnGHwXkDT2bKKP+s2v21m
|
|
12
|
+
ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
|
|
13
|
+
N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYD
|
|
14
|
+
VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DANBgkqhkiG
|
|
15
|
+
9w0BAQsFAAOCAYEASrm1AbEoxACZ9WXJH3R5axV3U0CA4xaETlL2YT+2nOfVBMQ9
|
|
16
|
+
0ZlkPx6j4ghKJgAIi1TMfDM2JyPJsppQh8tiNccDjWc62UZRY/dq26cMqf/lcI+a
|
|
17
|
+
6YBuEYvzZfearwVs8tHnXtwYV3WSCoCOQaB+nq2lA1O+nkKNl41WOsVbNama5jx3
|
|
18
|
+
8cQtVSEEmZy6jIDJ8c5TmBJ7BQUDEUEWA/A3V42Xyctoj7DvUXWE0lP+X6ypAVSr
|
|
19
|
+
lFh3TS64D7NTvxkmg7natUoCvobl6kGl4yMaqE4YRTlfuzhpf91TSOntClqrAOsS
|
|
20
|
+
K1s56WndQj3IoBocdY9mQhDZLtLHofSkymoP8btBlj5SsN24TiF0VMSZlctSCYZg
|
|
21
|
+
GKyHim/MMlIfGOWsgfioq5jzwmql7W4CDubbb8Lkg70v+hN2E/MnNVAcNE3gyaGc
|
|
22
|
+
P5YP5BAbNW+gvd3QHRiWTTuhgHrdDnGdXg93N2M5KHn1ug8BtPLQwlcFwEpKnlLn
|
|
23
|
+
btEP+7EplFuoiMfd
|
|
24
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIETTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1sYXJz
|
|
3
|
+
L0RDPWdyZWl6LXJlaW5zZG9yZi9EQz1kZTAeFw0yMjAyMTQxMzMwNTZaFw0yMzAy
|
|
4
|
+
MTQxMzMwNTZaMCgxJjAkBgNVBAMMHWxhcnMvREM9Z3JlaXotcmVpbnNkb3JmL0RD
|
|
5
|
+
PWRlMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAwum6Y1KznfpzXOT/
|
|
6
|
+
mZgJTBbxZuuZF49Fq3K0WA67YBzNlDv95qzSp7V/7Ek3NCcnT7G+2kSuhNo1FhdN
|
|
7
|
+
eSDO/moYebZNAcu3iqLsuzuULXPLuoU0GsMnVMqV9DZPh7cQHE5EBZ7hlzDBK7k/
|
|
8
|
+
8nBMvR0mHo77kIkapHc26UzVq/G0nKLfDsIHXVylto3PjzOumjG6GhmFN4r3cP6e
|
|
9
|
+
SDfl1FSeRYVpt4kmQULz/zdSaOH3AjAq7PM2Z91iGwQvoUXMANH2v89OWjQO/NHe
|
|
10
|
+
JMNDFsmHK/6Ji4Kk48Z3TyscHQnipAID5GhS1oD21/WePdj7GhmbF5gBzkV5uepd
|
|
11
|
+
eJQPgWGwrQW/Z2oPjRuJrRofzWfrMWqbOahj9uth6WSxhNexUtbjk6P8emmXOJi5
|
|
12
|
+
chQPnWX+N3Gj+jjYxqTFdwT7Mj3pv1VHa+aNUbqSPpvJeDyxRIuo9hvzDaBHb/Cg
|
|
13
|
+
9qRVcm8a96n4t7y2lrX1oookY6bkBaxWOMtWlqIprq8JZXM9AgMBAAGjgYEwfzAJ
|
|
14
|
+
BgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUOIdbSMr3VFrTCO9/cTM0
|
|
15
|
+
0exHzBcwIgYDVR0RBBswGYEXbGFyc0BncmVpei1yZWluc2RvcmYuZGUwIgYDVR0S
|
|
16
|
+
BBswGYEXbGFyc0BncmVpei1yZWluc2RvcmYuZGUwDQYJKoZIhvcNAQELBQADggGB
|
|
17
|
+
AFWP7F/y3Oq3NgrqUOnjKOeDaBa7AqNhHS+PZg+C90lnJzMgOs4KKgZYxqSQVSab
|
|
18
|
+
SCEmzIO/StkXY4NpJ4fYLrHemf/fJy1wPyu+fNdp5SEEUwEo+2toRFlzTe4u4LdS
|
|
19
|
+
QC636nPPTMt8H3xz2wf/lUIUeo2Qc95Qt2BQM465ibbG9kmA3c7Sopx6yOabYOAl
|
|
20
|
+
KPRbOSEPiWYcF9Suuz8Gdf8jxEtPlnZiwRvnYJ+IHMq3XQCJWPpMzdDMbtlgHbXE
|
|
21
|
+
vq1zOTLMSYAS0UB3uionR4yo1hLz60odwkCm7qf0o2Ci/5OjtB0a89VuyqRU2vUJ
|
|
22
|
+
QH95WBjDJ6lCCW7J0mrMPnJQSUFTmufsU6jOChvPaCeAzW1YwrsP/YKnvwueG7ip
|
|
23
|
+
VOdW6RitjtFxhS7evRL0201+KUvLz12zZWWjOcujlQs64QprxOtiv/MiisKb1Ng+
|
|
24
|
+
oL1mUdzB8KrZL4/WbG5YNX6UTtJbIOu9qEFbBAy4/jtIkJX+dlNoFwd4GXQW1YNO
|
|
25
|
+
nA==
|
|
26
|
+
-----END CERTIFICATE-----
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIEBDCCAmygAwIBAgIBAjANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1sYXJz
|
|
3
|
+
L0RDPWdyZWl6LXJlaW5zZG9yZi9EQz1kZTAeFw0yMzAyMTUxNzQxMTVaFw0yNDAy
|
|
4
|
+
MTUxNzQxMTVaMCgxJjAkBgNVBAMMHWxhcnMvREM9Z3JlaXotcmVpbnNkb3JmL0RD
|
|
5
|
+
PWRlMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAwum6Y1KznfpzXOT/
|
|
6
|
+
mZgJTBbxZuuZF49Fq3K0WA67YBzNlDv95qzSp7V/7Ek3NCcnT7G+2kSuhNo1FhdN
|
|
7
|
+
eSDO/moYebZNAcu3iqLsuzuULXPLuoU0GsMnVMqV9DZPh7cQHE5EBZ7hlzDBK7k/
|
|
8
|
+
8nBMvR0mHo77kIkapHc26UzVq/G0nKLfDsIHXVylto3PjzOumjG6GhmFN4r3cP6e
|
|
9
|
+
SDfl1FSeRYVpt4kmQULz/zdSaOH3AjAq7PM2Z91iGwQvoUXMANH2v89OWjQO/NHe
|
|
10
|
+
JMNDFsmHK/6Ji4Kk48Z3TyscHQnipAID5GhS1oD21/WePdj7GhmbF5gBzkV5uepd
|
|
11
|
+
eJQPgWGwrQW/Z2oPjRuJrRofzWfrMWqbOahj9uth6WSxhNexUtbjk6P8emmXOJi5
|
|
12
|
+
chQPnWX+N3Gj+jjYxqTFdwT7Mj3pv1VHa+aNUbqSPpvJeDyxRIuo9hvzDaBHb/Cg
|
|
13
|
+
9qRVcm8a96n4t7y2lrX1oookY6bkBaxWOMtWlqIprq8JZXM9AgMBAAGjOTA3MAkG
|
|
14
|
+
A1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQ4h1tIyvdUWtMI739xMzTR
|
|
15
|
+
7EfMFzANBgkqhkiG9w0BAQsFAAOCAYEAQAcuTARfiiVUVx5KURICfdTM2Kd7LhOn
|
|
16
|
+
qt3Vs4ANGvT226LEp3RnQ+kWGQYMRb3cw3LY2TNQRPlnZxE994mgjBscN4fbjXqO
|
|
17
|
+
T0JbVpeszRZa5k1goggbnWT7CO7yU7WcHh13DaSubY7HUpAJn2xz9w2stxQfN/EE
|
|
18
|
+
VMlnDJ1P7mUHAvpK8X9j9h7Xlc1niViT18MYwux8mboVTryrLr+clATUkkM3yBF0
|
|
19
|
+
RV+c34ReW5eXO9Tr6aKTxh/pFC9ggDT6jOxuJgSvG8HWJzVf4NDvMavIas4KYjiI
|
|
20
|
+
BU6CpWaG5NxicqL3BERi52U43HV08br+LNVpb7Rekgve/PJuSFnAR015bhSRXe5U
|
|
21
|
+
vBioD1qW2ZW9tXg8Ww2IfDaO5a1So5Xby51rhNlyo6ATj2NkuLWZUKPKHhAz0TKm
|
|
22
|
+
Dzx/gFSOrRoCt2mXNgrmcAfr386AfaMvCh7cXqdxZwmVo7ILZCYXck0pajvubsDd
|
|
23
|
+
NUIIFkVXvd1odFyK9LF1RFAtxn/iAmpx
|
|
24
|
+
-----END CERTIFICATE-----
|
data/ext/errorcodes.def
CHANGED
|
@@ -186,6 +186,10 @@
|
|
|
186
186
|
VALUE klass = define_error_class( "InvalidParameterValue", "22" );
|
|
187
187
|
register_error_class( "22023", klass );
|
|
188
188
|
}
|
|
189
|
+
{
|
|
190
|
+
VALUE klass = define_error_class( "InvalidPrecedingOrFollowingSize", "22" );
|
|
191
|
+
register_error_class( "22013", klass );
|
|
192
|
+
}
|
|
189
193
|
{
|
|
190
194
|
VALUE klass = define_error_class( "InvalidRegularExpression", "22" );
|
|
191
195
|
register_error_class( "2201B", klass );
|
|
@@ -198,6 +202,14 @@
|
|
|
198
202
|
VALUE klass = define_error_class( "InvalidRowCountInResultOffsetClause", "22" );
|
|
199
203
|
register_error_class( "2201X", klass );
|
|
200
204
|
}
|
|
205
|
+
{
|
|
206
|
+
VALUE klass = define_error_class( "InvalidTablesampleArgument", "22" );
|
|
207
|
+
register_error_class( "2202H", klass );
|
|
208
|
+
}
|
|
209
|
+
{
|
|
210
|
+
VALUE klass = define_error_class( "InvalidTablesampleRepeat", "22" );
|
|
211
|
+
register_error_class( "2202G", klass );
|
|
212
|
+
}
|
|
201
213
|
{
|
|
202
214
|
VALUE klass = define_error_class( "InvalidTimeZoneDisplacementValue", "22" );
|
|
203
215
|
register_error_class( "22009", klass );
|
|
@@ -222,6 +234,10 @@
|
|
|
222
234
|
VALUE klass = define_error_class( "NumericValueOutOfRange", "22" );
|
|
223
235
|
register_error_class( "22003", klass );
|
|
224
236
|
}
|
|
237
|
+
{
|
|
238
|
+
VALUE klass = define_error_class( "SequenceGeneratorLimitExceeded", "22" );
|
|
239
|
+
register_error_class( "2200H", klass );
|
|
240
|
+
}
|
|
225
241
|
{
|
|
226
242
|
VALUE klass = define_error_class( "StringDataLengthMismatch", "22" );
|
|
227
243
|
register_error_class( "22026", klass );
|
|
@@ -286,6 +302,74 @@
|
|
|
286
302
|
VALUE klass = define_error_class( "InvalidXmlProcessingInstruction", "22" );
|
|
287
303
|
register_error_class( "2200T", klass );
|
|
288
304
|
}
|
|
305
|
+
{
|
|
306
|
+
VALUE klass = define_error_class( "DuplicateJsonObjectKeyValue", "22" );
|
|
307
|
+
register_error_class( "22030", klass );
|
|
308
|
+
}
|
|
309
|
+
{
|
|
310
|
+
VALUE klass = define_error_class( "InvalidArgumentForSqlJsonDatetimeFunction", "22" );
|
|
311
|
+
register_error_class( "22031", klass );
|
|
312
|
+
}
|
|
313
|
+
{
|
|
314
|
+
VALUE klass = define_error_class( "InvalidJsonText", "22" );
|
|
315
|
+
register_error_class( "22032", klass );
|
|
316
|
+
}
|
|
317
|
+
{
|
|
318
|
+
VALUE klass = define_error_class( "InvalidSqlJsonSubscript", "22" );
|
|
319
|
+
register_error_class( "22033", klass );
|
|
320
|
+
}
|
|
321
|
+
{
|
|
322
|
+
VALUE klass = define_error_class( "MoreThanOneSqlJsonItem", "22" );
|
|
323
|
+
register_error_class( "22034", klass );
|
|
324
|
+
}
|
|
325
|
+
{
|
|
326
|
+
VALUE klass = define_error_class( "NoSqlJsonItem", "22" );
|
|
327
|
+
register_error_class( "22035", klass );
|
|
328
|
+
}
|
|
329
|
+
{
|
|
330
|
+
VALUE klass = define_error_class( "NonNumericSqlJsonItem", "22" );
|
|
331
|
+
register_error_class( "22036", klass );
|
|
332
|
+
}
|
|
333
|
+
{
|
|
334
|
+
VALUE klass = define_error_class( "NonUniqueKeysInAJsonObject", "22" );
|
|
335
|
+
register_error_class( "22037", klass );
|
|
336
|
+
}
|
|
337
|
+
{
|
|
338
|
+
VALUE klass = define_error_class( "SingletonSqlJsonItemRequired", "22" );
|
|
339
|
+
register_error_class( "22038", klass );
|
|
340
|
+
}
|
|
341
|
+
{
|
|
342
|
+
VALUE klass = define_error_class( "SqlJsonArrayNotFound", "22" );
|
|
343
|
+
register_error_class( "22039", klass );
|
|
344
|
+
}
|
|
345
|
+
{
|
|
346
|
+
VALUE klass = define_error_class( "SqlJsonMemberNotFound", "22" );
|
|
347
|
+
register_error_class( "2203A", klass );
|
|
348
|
+
}
|
|
349
|
+
{
|
|
350
|
+
VALUE klass = define_error_class( "SqlJsonNumberNotFound", "22" );
|
|
351
|
+
register_error_class( "2203B", klass );
|
|
352
|
+
}
|
|
353
|
+
{
|
|
354
|
+
VALUE klass = define_error_class( "SqlJsonObjectNotFound", "22" );
|
|
355
|
+
register_error_class( "2203C", klass );
|
|
356
|
+
}
|
|
357
|
+
{
|
|
358
|
+
VALUE klass = define_error_class( "TooManyJsonArrayElements", "22" );
|
|
359
|
+
register_error_class( "2203D", klass );
|
|
360
|
+
}
|
|
361
|
+
{
|
|
362
|
+
VALUE klass = define_error_class( "TooManyJsonObjectMembers", "22" );
|
|
363
|
+
register_error_class( "2203E", klass );
|
|
364
|
+
}
|
|
365
|
+
{
|
|
366
|
+
VALUE klass = define_error_class( "SqlJsonScalarRequired", "22" );
|
|
367
|
+
register_error_class( "2203F", klass );
|
|
368
|
+
}
|
|
369
|
+
{
|
|
370
|
+
VALUE klass = define_error_class( "SqlJsonItemCannotBeCastToTargetType", "22" );
|
|
371
|
+
register_error_class( "2203G", klass );
|
|
372
|
+
}
|
|
289
373
|
{
|
|
290
374
|
VALUE klass = define_error_class( "IntegrityConstraintViolation", NULL );
|
|
291
375
|
register_error_class( "23000", klass );
|
|
@@ -365,6 +449,10 @@
|
|
|
365
449
|
VALUE klass = define_error_class( "InFailedSqlTransaction", "25" );
|
|
366
450
|
register_error_class( "25P02", klass );
|
|
367
451
|
}
|
|
452
|
+
{
|
|
453
|
+
VALUE klass = define_error_class( "IdleInTransactionSessionTimeout", "25" );
|
|
454
|
+
register_error_class( "25P03", klass );
|
|
455
|
+
}
|
|
368
456
|
{
|
|
369
457
|
VALUE klass = define_error_class( "InvalidSqlStatementName", NULL );
|
|
370
458
|
register_error_class( "26000", klass );
|
|
@@ -466,6 +554,10 @@
|
|
|
466
554
|
VALUE klass = define_error_class( "ERIESrfProtocolViolated", "39" );
|
|
467
555
|
register_error_class( "39P02", klass );
|
|
468
556
|
}
|
|
557
|
+
{
|
|
558
|
+
VALUE klass = define_error_class( "ERIEEventTriggerProtocolViolated", "39" );
|
|
559
|
+
register_error_class( "39P03", klass );
|
|
560
|
+
}
|
|
469
561
|
{
|
|
470
562
|
VALUE klass = define_error_class( "SavepointException", NULL );
|
|
471
563
|
register_error_class( "3B000", klass );
|
|
@@ -571,6 +663,10 @@
|
|
|
571
663
|
VALUE klass = define_error_class( "WrongObjectType", "42" );
|
|
572
664
|
register_error_class( "42809", klass );
|
|
573
665
|
}
|
|
666
|
+
{
|
|
667
|
+
VALUE klass = define_error_class( "GeneratedAlways", "42" );
|
|
668
|
+
register_error_class( "428C9", klass );
|
|
669
|
+
}
|
|
574
670
|
{
|
|
575
671
|
VALUE klass = define_error_class( "UndefinedColumn", "42" );
|
|
576
672
|
register_error_class( "42703", klass );
|
|
@@ -739,6 +835,10 @@
|
|
|
739
835
|
VALUE klass = define_error_class( "LockNotAvailable", "55" );
|
|
740
836
|
register_error_class( "55P03", klass );
|
|
741
837
|
}
|
|
838
|
+
{
|
|
839
|
+
VALUE klass = define_error_class( "UnsafeNewEnumValueUsage", "55" );
|
|
840
|
+
register_error_class( "55P04", klass );
|
|
841
|
+
}
|
|
742
842
|
{
|
|
743
843
|
VALUE klass = define_error_class( "OperatorIntervention", NULL );
|
|
744
844
|
register_error_class( "57000", klass );
|
|
@@ -764,6 +864,10 @@
|
|
|
764
864
|
VALUE klass = define_error_class( "DatabaseDropped", "57" );
|
|
765
865
|
register_error_class( "57P04", klass );
|
|
766
866
|
}
|
|
867
|
+
{
|
|
868
|
+
VALUE klass = define_error_class( "IdleSessionTimeout", "57" );
|
|
869
|
+
register_error_class( "57P05", klass );
|
|
870
|
+
}
|
|
767
871
|
{
|
|
768
872
|
VALUE klass = define_error_class( "SystemError", NULL );
|
|
769
873
|
register_error_class( "58000", klass );
|
|
@@ -781,6 +885,11 @@
|
|
|
781
885
|
VALUE klass = define_error_class( "DuplicateFile", "58" );
|
|
782
886
|
register_error_class( "58P02", klass );
|
|
783
887
|
}
|
|
888
|
+
{
|
|
889
|
+
VALUE klass = define_error_class( "SnapshotTooOld", NULL );
|
|
890
|
+
register_error_class( "72000", klass );
|
|
891
|
+
register_error_class( "72", klass );
|
|
892
|
+
}
|
|
784
893
|
{
|
|
785
894
|
VALUE klass = define_error_class( "ConfigFileError", NULL );
|
|
786
895
|
register_error_class( "F0000", klass );
|
|
@@ -916,6 +1025,10 @@
|
|
|
916
1025
|
VALUE klass = define_error_class( "TooManyRows", "P0" );
|
|
917
1026
|
register_error_class( "P0003", klass );
|
|
918
1027
|
}
|
|
1028
|
+
{
|
|
1029
|
+
VALUE klass = define_error_class( "AssertFailure", "P0" );
|
|
1030
|
+
register_error_class( "P0004", klass );
|
|
1031
|
+
}
|
|
919
1032
|
{
|
|
920
1033
|
VALUE klass = define_error_class( "InternalError", NULL );
|
|
921
1034
|
register_error_class( "XX000", klass );
|
data/ext/errorcodes.rb
CHANGED
data/ext/errorcodes.txt
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
# errcodes.txt
|
|
3
3
|
# PostgreSQL error codes
|
|
4
4
|
#
|
|
5
|
-
# Copyright (c) 2003-
|
|
5
|
+
# Copyright (c) 2003-2022, PostgreSQL Global Development Group
|
|
6
6
|
#
|
|
7
7
|
# This list serves as the basis for generating source files containing error
|
|
8
8
|
# codes. It is kept in a common format to make sure all these source files have
|
|
@@ -15,7 +15,10 @@
|
|
|
15
15
|
# src/pl/plpgsql/src/plerrcodes.h
|
|
16
16
|
# a list of PL/pgSQL condition names and their SQLSTATE codes
|
|
17
17
|
#
|
|
18
|
-
#
|
|
18
|
+
# src/pl/tcl/pltclerrcodes.h
|
|
19
|
+
# the same, for PL/Tcl
|
|
20
|
+
#
|
|
21
|
+
# doc/src/sgml/errcodes-table.sgml
|
|
19
22
|
# a SGML table of error codes for inclusion in the documentation
|
|
20
23
|
#
|
|
21
24
|
# The format of this file is one error code per line, with the following
|
|
@@ -174,15 +177,19 @@ Section: Class 22 - Data Exception
|
|
|
174
177
|
22P06 E ERRCODE_NONSTANDARD_USE_OF_ESCAPE_CHARACTER nonstandard_use_of_escape_character
|
|
175
178
|
22010 E ERRCODE_INVALID_INDICATOR_PARAMETER_VALUE invalid_indicator_parameter_value
|
|
176
179
|
22023 E ERRCODE_INVALID_PARAMETER_VALUE invalid_parameter_value
|
|
180
|
+
22013 E ERRCODE_INVALID_PRECEDING_OR_FOLLOWING_SIZE invalid_preceding_or_following_size
|
|
177
181
|
2201B E ERRCODE_INVALID_REGULAR_EXPRESSION invalid_regular_expression
|
|
178
182
|
2201W E ERRCODE_INVALID_ROW_COUNT_IN_LIMIT_CLAUSE invalid_row_count_in_limit_clause
|
|
179
183
|
2201X E ERRCODE_INVALID_ROW_COUNT_IN_RESULT_OFFSET_CLAUSE invalid_row_count_in_result_offset_clause
|
|
184
|
+
2202H E ERRCODE_INVALID_TABLESAMPLE_ARGUMENT invalid_tablesample_argument
|
|
185
|
+
2202G E ERRCODE_INVALID_TABLESAMPLE_REPEAT invalid_tablesample_repeat
|
|
180
186
|
22009 E ERRCODE_INVALID_TIME_ZONE_DISPLACEMENT_VALUE invalid_time_zone_displacement_value
|
|
181
187
|
2200C E ERRCODE_INVALID_USE_OF_ESCAPE_CHARACTER invalid_use_of_escape_character
|
|
182
188
|
2200G E ERRCODE_MOST_SPECIFIC_TYPE_MISMATCH most_specific_type_mismatch
|
|
183
189
|
22004 E ERRCODE_NULL_VALUE_NOT_ALLOWED null_value_not_allowed
|
|
184
190
|
22002 E ERRCODE_NULL_VALUE_NO_INDICATOR_PARAMETER null_value_no_indicator_parameter
|
|
185
191
|
22003 E ERRCODE_NUMERIC_VALUE_OUT_OF_RANGE numeric_value_out_of_range
|
|
192
|
+
2200H E ERRCODE_SEQUENCE_GENERATOR_LIMIT_EXCEEDED sequence_generator_limit_exceeded
|
|
186
193
|
22026 E ERRCODE_STRING_DATA_LENGTH_MISMATCH string_data_length_mismatch
|
|
187
194
|
22001 E ERRCODE_STRING_DATA_RIGHT_TRUNCATION string_data_right_truncation
|
|
188
195
|
22011 E ERRCODE_SUBSTRING_ERROR substring_error
|
|
@@ -199,6 +206,23 @@ Section: Class 22 - Data Exception
|
|
|
199
206
|
2200N E ERRCODE_INVALID_XML_CONTENT invalid_xml_content
|
|
200
207
|
2200S E ERRCODE_INVALID_XML_COMMENT invalid_xml_comment
|
|
201
208
|
2200T E ERRCODE_INVALID_XML_PROCESSING_INSTRUCTION invalid_xml_processing_instruction
|
|
209
|
+
22030 E ERRCODE_DUPLICATE_JSON_OBJECT_KEY_VALUE duplicate_json_object_key_value
|
|
210
|
+
22031 E ERRCODE_INVALID_ARGUMENT_FOR_SQL_JSON_DATETIME_FUNCTION invalid_argument_for_sql_json_datetime_function
|
|
211
|
+
22032 E ERRCODE_INVALID_JSON_TEXT invalid_json_text
|
|
212
|
+
22033 E ERRCODE_INVALID_SQL_JSON_SUBSCRIPT invalid_sql_json_subscript
|
|
213
|
+
22034 E ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM more_than_one_sql_json_item
|
|
214
|
+
22035 E ERRCODE_NO_SQL_JSON_ITEM no_sql_json_item
|
|
215
|
+
22036 E ERRCODE_NON_NUMERIC_SQL_JSON_ITEM non_numeric_sql_json_item
|
|
216
|
+
22037 E ERRCODE_NON_UNIQUE_KEYS_IN_A_JSON_OBJECT non_unique_keys_in_a_json_object
|
|
217
|
+
22038 E ERRCODE_SINGLETON_SQL_JSON_ITEM_REQUIRED singleton_sql_json_item_required
|
|
218
|
+
22039 E ERRCODE_SQL_JSON_ARRAY_NOT_FOUND sql_json_array_not_found
|
|
219
|
+
2203A E ERRCODE_SQL_JSON_MEMBER_NOT_FOUND sql_json_member_not_found
|
|
220
|
+
2203B E ERRCODE_SQL_JSON_NUMBER_NOT_FOUND sql_json_number_not_found
|
|
221
|
+
2203C E ERRCODE_SQL_JSON_OBJECT_NOT_FOUND sql_json_object_not_found
|
|
222
|
+
2203D E ERRCODE_TOO_MANY_JSON_ARRAY_ELEMENTS too_many_json_array_elements
|
|
223
|
+
2203E E ERRCODE_TOO_MANY_JSON_OBJECT_MEMBERS too_many_json_object_members
|
|
224
|
+
2203F E ERRCODE_SQL_JSON_SCALAR_REQUIRED sql_json_scalar_required
|
|
225
|
+
2203G E ERRCODE_SQL_JSON_ITEM_CANNOT_BE_CAST_TO_TARGET_TYPE sql_json_item_cannot_be_cast_to_target_type
|
|
202
226
|
|
|
203
227
|
Section: Class 23 - Integrity Constraint Violation
|
|
204
228
|
|
|
@@ -227,6 +251,7 @@ Section: Class 25 - Invalid Transaction State
|
|
|
227
251
|
25007 E ERRCODE_SCHEMA_AND_DATA_STATEMENT_MIXING_NOT_SUPPORTED schema_and_data_statement_mixing_not_supported
|
|
228
252
|
25P01 E ERRCODE_NO_ACTIVE_SQL_TRANSACTION no_active_sql_transaction
|
|
229
253
|
25P02 E ERRCODE_IN_FAILED_SQL_TRANSACTION in_failed_sql_transaction
|
|
254
|
+
25P03 E ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT idle_in_transaction_session_timeout
|
|
230
255
|
|
|
231
256
|
Section: Class 26 - Invalid SQL Statement Name
|
|
232
257
|
|
|
@@ -278,6 +303,7 @@ Section: Class 39 - External Routine Invocation Exception
|
|
|
278
303
|
39004 E ERRCODE_E_R_I_E_NULL_VALUE_NOT_ALLOWED null_value_not_allowed
|
|
279
304
|
39P01 E ERRCODE_E_R_I_E_TRIGGER_PROTOCOL_VIOLATED trigger_protocol_violated
|
|
280
305
|
39P02 E ERRCODE_E_R_I_E_SRF_PROTOCOL_VIOLATED srf_protocol_violated
|
|
306
|
+
39P03 E ERRCODE_E_R_I_E_EVENT_TRIGGER_PROTOCOL_VIOLATED event_trigger_protocol_violated
|
|
281
307
|
|
|
282
308
|
Section: Class 3B - Savepoint Exception
|
|
283
309
|
|
|
@@ -319,6 +345,7 @@ Section: Class 42 - Syntax Error or Access Rule Violation
|
|
|
319
345
|
42P21 E ERRCODE_COLLATION_MISMATCH collation_mismatch
|
|
320
346
|
42P22 E ERRCODE_INDETERMINATE_COLLATION indeterminate_collation
|
|
321
347
|
42809 E ERRCODE_WRONG_OBJECT_TYPE wrong_object_type
|
|
348
|
+
428C9 E ERRCODE_GENERATED_ALWAYS generated_always
|
|
322
349
|
|
|
323
350
|
# Note: for ERRCODE purposes, we divide namable objects into these categories:
|
|
324
351
|
# databases, schemas, prepared statements, cursors, tables, columns,
|
|
@@ -391,6 +418,7 @@ Section: Class 55 - Object Not In Prerequisite State
|
|
|
391
418
|
55006 E ERRCODE_OBJECT_IN_USE object_in_use
|
|
392
419
|
55P02 E ERRCODE_CANT_CHANGE_RUNTIME_PARAM cant_change_runtime_param
|
|
393
420
|
55P03 E ERRCODE_LOCK_NOT_AVAILABLE lock_not_available
|
|
421
|
+
55P04 E ERRCODE_UNSAFE_NEW_ENUM_VALUE_USAGE unsafe_new_enum_value_usage
|
|
394
422
|
|
|
395
423
|
Section: Class 57 - Operator Intervention
|
|
396
424
|
|
|
@@ -401,6 +429,7 @@ Section: Class 57 - Operator Intervention
|
|
|
401
429
|
57P02 E ERRCODE_CRASH_SHUTDOWN crash_shutdown
|
|
402
430
|
57P03 E ERRCODE_CANNOT_CONNECT_NOW cannot_connect_now
|
|
403
431
|
57P04 E ERRCODE_DATABASE_DROPPED database_dropped
|
|
432
|
+
57P05 E ERRCODE_IDLE_SESSION_TIMEOUT idle_session_timeout
|
|
404
433
|
|
|
405
434
|
Section: Class 58 - System Error (errors external to PostgreSQL itself)
|
|
406
435
|
|
|
@@ -410,6 +439,10 @@ Section: Class 58 - System Error (errors external to PostgreSQL itself)
|
|
|
410
439
|
58P01 E ERRCODE_UNDEFINED_FILE undefined_file
|
|
411
440
|
58P02 E ERRCODE_DUPLICATE_FILE duplicate_file
|
|
412
441
|
|
|
442
|
+
Section: Class 72 - Snapshot Failure
|
|
443
|
+
# (class borrowed from Oracle)
|
|
444
|
+
72000 E ERRCODE_SNAPSHOT_TOO_OLD snapshot_too_old
|
|
445
|
+
|
|
413
446
|
Section: Class F0 - Configuration File Error
|
|
414
447
|
|
|
415
448
|
# (PostgreSQL-specific error class)
|
|
@@ -454,6 +487,7 @@ P0000 E ERRCODE_PLPGSQL_ERROR plp
|
|
|
454
487
|
P0001 E ERRCODE_RAISE_EXCEPTION raise_exception
|
|
455
488
|
P0002 E ERRCODE_NO_DATA_FOUND no_data_found
|
|
456
489
|
P0003 E ERRCODE_TOO_MANY_ROWS too_many_rows
|
|
490
|
+
P0004 E ERRCODE_ASSERT_FAILURE assert_failure
|
|
457
491
|
|
|
458
492
|
Section: Class XX - Internal Error
|
|
459
493
|
|