pg 1.2.3 → 1.6.1
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +986 -0
- data/Gemfile +23 -0
- data/README-Windows.rdoc +1 -1
- data/README.ja.md +300 -0
- data/README.md +327 -0
- data/Rakefile +123 -144
- data/certs/ged.pem +24 -0
- data/certs/kanis@comcard.de.pem +20 -0
- data/certs/larskanis-2022.pem +26 -0
- data/certs/larskanis-2023.pem +24 -0
- data/certs/larskanis-2024.pem +24 -0
- data/ext/errorcodes.def +16 -5
- data/ext/errorcodes.rb +0 -0
- data/ext/errorcodes.txt +5 -5
- data/ext/extconf.rb +259 -33
- data/ext/gvl_wrappers.c +17 -2
- data/ext/gvl_wrappers.h +56 -0
- data/ext/pg.c +89 -63
- data/ext/pg.h +31 -8
- data/ext/pg_binary_decoder.c +232 -1
- data/ext/pg_binary_encoder.c +428 -1
- data/ext/pg_cancel_connection.c +360 -0
- data/ext/pg_coder.c +148 -36
- data/ext/pg_connection.c +1365 -817
- data/ext/pg_copy_coder.c +360 -38
- data/ext/pg_errors.c +1 -1
- data/ext/pg_record_coder.c +56 -25
- data/ext/pg_result.c +187 -76
- data/ext/pg_text_decoder.c +32 -11
- data/ext/pg_text_encoder.c +65 -33
- data/ext/pg_tuple.c +84 -61
- data/ext/pg_type_map.c +44 -10
- data/ext/pg_type_map_all_strings.c +17 -3
- data/ext/pg_type_map_by_class.c +54 -27
- data/ext/pg_type_map_by_column.c +74 -31
- data/ext/pg_type_map_by_mri_type.c +48 -19
- data/ext/pg_type_map_by_oid.c +61 -27
- data/ext/pg_type_map_in_ruby.c +55 -21
- data/ext/pg_util.c +2 -2
- data/lib/pg/basic_type_map_based_on_result.rb +67 -0
- data/lib/pg/basic_type_map_for_queries.rb +206 -0
- data/lib/pg/basic_type_map_for_results.rb +104 -0
- data/lib/pg/basic_type_registry.rb +311 -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/cancel_connection.rb +53 -0
- data/lib/pg/coder.rb +18 -14
- data/lib/pg/connection.rb +894 -91
- data/lib/pg/exceptions.rb +20 -1
- data/lib/pg/text_decoder/date.rb +21 -0
- data/lib/pg/text_decoder/inet.rb +9 -0
- data/lib/pg/text_decoder/json.rb +17 -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 +13 -0
- data/lib/pg/text_encoder/inet.rb +31 -0
- data/lib/pg/text_encoder/json.rb +17 -0
- data/lib/pg/text_encoder/numeric.rb +9 -0
- data/lib/pg/text_encoder/timestamp.rb +24 -0
- data/lib/pg/version.rb +4 -0
- data/lib/pg.rb +109 -39
- 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/misc/yugabyte/Dockerfile +9 -0
- data/misc/yugabyte/docker-compose.yml +28 -0
- data/misc/yugabyte/pg-test.rb +45 -0
- data/pg.gemspec +38 -0
- data/ports/patches/krb5/1.21.3/0001-Allow-static-linking-krb5-library.patch +30 -0
- data/ports/patches/openssl/3.5.1/0001-aarch64-mingw.patch +21 -0
- data/ports/patches/postgresql/17.5/0001-Use-workaround-of-__builtin_setjmp-only-on-MINGW-on-.patch +42 -0
- data/ports/patches/postgresql/17.5/0001-libpq-Process-buffered-SSL-read-bytes-to-support-rec.patch +52 -0
- data/rakelib/pg_gem_helper.rb +64 -0
- data/rakelib/task_extension.rb +46 -0
- data/sample/array_insert.rb +20 -0
- data/sample/async_api.rb +102 -0
- data/sample/async_copyto.rb +39 -0
- data/sample/async_mixed.rb +56 -0
- data/sample/check_conn.rb +21 -0
- data/sample/copydata.rb +71 -0
- data/sample/copyfrom.rb +81 -0
- data/sample/copyto.rb +19 -0
- data/sample/cursor.rb +21 -0
- data/sample/disk_usage_report.rb +177 -0
- data/sample/issue-119.rb +94 -0
- data/sample/losample.rb +69 -0
- data/sample/minimal-testcase.rb +17 -0
- data/sample/notify_wait.rb +72 -0
- data/sample/pg_statistics.rb +285 -0
- data/sample/replication_monitor.rb +222 -0
- data/sample/test_binary_values.rb +33 -0
- data/sample/wal_shipper.rb +434 -0
- data/sample/warehouse_partitions.rb +311 -0
- data.tar.gz.sig +0 -0
- metadata +139 -213
- metadata.gz.sig +0 -0
- data/.gemtest +0 -0
- data/ChangeLog +0 -0
- data/History.rdoc +0 -578
- data/Manifest.txt +0 -73
- data/README.ja.rdoc +0 -13
- data/README.rdoc +0 -213
- data/Rakefile.cross +0 -299
- data/lib/pg/basic_type_mapping.rb +0 -522
- data/lib/pg/binary_decoder.rb +0 -23
- data/lib/pg/constants.rb +0 -12
- data/lib/pg/text_decoder.rb +0 -46
- data/lib/pg/text_encoder.rb +0 -59
- data/spec/data/expected_trace.out +0 -26
- data/spec/data/random_binary_data +0 -0
- data/spec/helpers.rb +0 -380
- data/spec/pg/basic_type_mapping_spec.rb +0 -630
- data/spec/pg/connection_spec.rb +0 -1949
- data/spec/pg/connection_sync_spec.rb +0 -41
- data/spec/pg/result_spec.rb +0 -681
- data/spec/pg/tuple_spec.rb +0 -333
- data/spec/pg/type_map_by_class_spec.rb +0 -138
- data/spec/pg/type_map_by_column_spec.rb +0 -226
- 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 -1123
- data/spec/pg_spec.rb +0 -50
data/Rakefile
CHANGED
@@ -1,22 +1,17 @@
|
|
1
1
|
# -*- rake -*-
|
2
2
|
|
3
|
+
# Enable english error messages, as some specs depend on them
|
4
|
+
ENV["LANG"] = "C"
|
5
|
+
|
3
6
|
require 'rbconfig'
|
4
7
|
require 'pathname'
|
5
8
|
require 'tmpdir'
|
6
|
-
|
7
|
-
begin
|
8
|
-
require 'rake/extensiontask'
|
9
|
-
rescue LoadError
|
10
|
-
abort "This Rakefile requires rake-compiler (gem install rake-compiler)"
|
11
|
-
end
|
12
|
-
|
13
|
-
begin
|
14
|
-
require 'hoe'
|
15
|
-
rescue LoadError
|
16
|
-
abort "This Rakefile requires hoe (gem install hoe)"
|
17
|
-
end
|
18
|
-
|
9
|
+
require 'rake/extensiontask'
|
19
10
|
require 'rake/clean'
|
11
|
+
require 'rspec/core/rake_task'
|
12
|
+
require 'bundler'
|
13
|
+
require 'bundler/gem_helper'
|
14
|
+
require_relative "rakelib/pg_gem_helper"
|
20
15
|
|
21
16
|
# Build directory constants
|
22
17
|
BASEDIR = Pathname( __FILE__ ).dirname
|
@@ -25,168 +20,159 @@ LIBDIR = BASEDIR + 'lib'
|
|
25
20
|
EXTDIR = BASEDIR + 'ext'
|
26
21
|
PKGDIR = BASEDIR + 'pkg'
|
27
22
|
TMPDIR = BASEDIR + 'tmp'
|
23
|
+
TESTDIR = BASEDIR + "tmp_test_*"
|
28
24
|
|
29
25
|
DLEXT = RbConfig::CONFIG['DLEXT']
|
30
26
|
EXT = LIBDIR + "pg_ext.#{DLEXT}"
|
31
27
|
|
32
28
|
GEMSPEC = 'pg.gemspec'
|
33
29
|
|
34
|
-
|
35
|
-
|
36
|
-
CLOBBER.include( TEST_DIRECTORY.to_s )
|
30
|
+
CLEAN.include( TESTDIR.to_s )
|
37
31
|
CLEAN.include( PKGDIR.to_s, TMPDIR.to_s )
|
38
32
|
CLEAN.include "lib/*/libpq.dll"
|
39
33
|
CLEAN.include "lib/pg_ext.*"
|
34
|
+
CLEAN.include "lib/pg/postgresql_lib_path.rb"
|
35
|
+
CLEAN.include "ports/*.installed"
|
36
|
+
CLEAN.include "ports/*mingw*", "ports/*linux*", "ports/*darwin*"
|
40
37
|
|
41
|
-
|
42
|
-
|
43
|
-
Hoe.plugin :signing
|
44
|
-
Hoe.plugin :deveiate
|
45
|
-
Hoe.plugin :bundler
|
46
|
-
|
47
|
-
Hoe.plugins.delete :rubyforge
|
48
|
-
Hoe.plugins.delete :compiler
|
49
|
-
|
50
|
-
load 'Rakefile.cross'
|
51
|
-
|
52
|
-
|
53
|
-
# Hoe specification
|
54
|
-
$hoespec = Hoe.spec 'pg' do
|
55
|
-
self.readme_file = 'README.rdoc'
|
56
|
-
self.history_file = 'History.rdoc'
|
57
|
-
self.extra_rdoc_files = Rake::FileList[ '*.rdoc' ]
|
58
|
-
self.extra_rdoc_files.include( 'POSTGRES', 'LICENSE' )
|
59
|
-
self.extra_rdoc_files.include( 'ext/*.c' )
|
60
|
-
self.license 'BSD-2-Clause'
|
61
|
-
|
62
|
-
self.developer 'Michael Granger', 'ged@FaerieMUD.org'
|
63
|
-
self.developer 'Lars Kanis', 'lars@greiz-reinsdorf.de'
|
64
|
-
|
65
|
-
self.dependency 'rake-compiler', '~> 1.0', :developer
|
66
|
-
self.dependency 'rake-compiler-dock', ['~> 1.0'], :developer
|
67
|
-
self.dependency 'hoe-deveiate', '~> 0.9', :developer
|
68
|
-
self.dependency 'hoe-bundler', '~> 1.0', :developer
|
69
|
-
self.dependency 'rspec', '~> 3.5', :developer
|
70
|
-
self.dependency 'rdoc', '~> 5.1', :developer
|
71
|
-
|
72
|
-
self.spec_extras[:extensions] = [ 'ext/extconf.rb' ]
|
73
|
-
|
74
|
-
self.require_ruby_version( '>= 2.2' )
|
75
|
-
|
76
|
-
self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
|
77
|
-
self.check_history_on_release = true if self.respond_to?( :check_history_on_release= )
|
78
|
-
|
79
|
-
self.rdoc_locations << "deveiate:/usr/local/www/public/code/#{remote_rdoc_dir}"
|
80
|
-
end
|
81
|
-
|
82
|
-
ENV['VERSION'] ||= $hoespec.spec.version.to_s
|
83
|
-
|
84
|
-
# Tests should pass before checking in
|
85
|
-
task 'hg:precheckin' => [ :check_history, :check_manifest, :spec, :gemspec ]
|
86
|
-
|
87
|
-
# Support for 'rvm specs'
|
88
|
-
task :specs => :spec
|
89
|
-
|
90
|
-
# Compile before testing
|
91
|
-
task :spec => :compile
|
92
|
-
|
93
|
-
# gem-testers support
|
94
|
-
task :test do
|
95
|
-
# rake-compiler always wants to copy the compiled extension into lib/, but
|
96
|
-
# we don't want testers to have to re-compile, especially since that
|
97
|
-
# often fails because they can't (and shouldn't have to) write to tmp/ in
|
98
|
-
# the installed gem dir. So we clear the task rake-compiler set up
|
99
|
-
# to break the dependency between :spec and :compile when running under
|
100
|
-
# rubygems-test, and then run :spec.
|
101
|
-
Rake::Task[ EXT.to_s ].clear if File.exist?(EXT.to_s)
|
102
|
-
Rake::Task[ :spec ].execute
|
103
|
-
end
|
38
|
+
PgGemHelper.install_tasks
|
39
|
+
$gem_spec = Bundler.load_gemspec(GEMSPEC)
|
104
40
|
|
105
41
|
desc "Turn on warnings and debugging in the build."
|
106
42
|
task :maint do
|
107
43
|
ENV['MAINTAINER_MODE'] = 'yes'
|
108
44
|
end
|
109
45
|
|
46
|
+
CrossLibrary = Struct.new :platform, :openssl_config, :toolchain
|
47
|
+
CrossLibraries = [
|
48
|
+
['aarch64-mingw-ucrt', 'mingwarm64', 'aarch64-w64-mingw32'],
|
49
|
+
['x64-mingw-ucrt', 'mingw64', 'x86_64-w64-mingw32'],
|
50
|
+
['x86-mingw32', 'mingw', 'i686-w64-mingw32'],
|
51
|
+
['x64-mingw32', 'mingw64', 'x86_64-w64-mingw32'],
|
52
|
+
['x86_64-linux', 'linux-x86_64', 'x86_64-linux-gnu'],
|
53
|
+
['x86_64-linux-musl', 'linux-x86_64', 'x86_64-unknown-linux-musl'],
|
54
|
+
['aarch64-linux', 'linux-aarch64', 'aarch64-linux-gnu'],
|
55
|
+
['aarch64-linux-musl', 'linux-aarch64', 'aarch64-linux-musl'],
|
56
|
+
['x86_64-darwin', 'darwin64-x86_64', 'x86_64-apple-darwin'],
|
57
|
+
['arm64-darwin', 'darwin64-arm64', 'arm64-apple-darwin'],
|
58
|
+
].map do |platform, openssl_config, toolchain|
|
59
|
+
CrossLibrary.new platform, openssl_config, toolchain
|
60
|
+
end
|
61
|
+
|
62
|
+
# Register binary gems to be pushed to rubygems.org
|
63
|
+
Bundler::GemHelper.instance.cross_platforms = CrossLibraries.map(&:platform)
|
64
|
+
|
110
65
|
# Rake-compiler task
|
111
66
|
Rake::ExtensionTask.new do |ext|
|
112
67
|
ext.name = 'pg_ext'
|
113
|
-
ext.gem_spec = $
|
68
|
+
ext.gem_spec = $gem_spec
|
114
69
|
ext.ext_dir = 'ext'
|
115
70
|
ext.lib_dir = 'lib'
|
116
71
|
ext.source_pattern = "*.{c,h}"
|
117
72
|
ext.cross_compile = true
|
118
|
-
ext.cross_platform = CrossLibraries.map(&:for_platform)
|
119
73
|
|
120
|
-
|
74
|
+
# Activate current cross compiled platform only.
|
75
|
+
# This is to work around the issue that `linux` platform is selected in `linux-musl` image.
|
76
|
+
ext.cross_platform = CrossLibraries.map(&:platform).select do |pl|
|
77
|
+
m = ENV["RCD_IMAGE"]&.match(/:(?<ruby_ver>[\d\.]+)-mri-(?<platform>[-\w]+)$/)
|
78
|
+
m && m[:platform] == pl
|
79
|
+
end
|
80
|
+
|
81
|
+
ext.cross_config_options += CrossLibraries.map do |xlib|
|
121
82
|
{
|
122
|
-
|
123
|
-
"--
|
124
|
-
"--with-
|
125
|
-
"--with-
|
126
|
-
# libpq-fe.h resides in src/interfaces/libpq/ before make install
|
127
|
-
"--with-opt-include=#{lib.static_postgresql_libdir}",
|
83
|
+
xlib.platform => [
|
84
|
+
"--with-cross-build=#{xlib.platform}",
|
85
|
+
"--with-openssl-platform=#{xlib.openssl_config}",
|
86
|
+
"--with-toolchain=#{xlib.toolchain}",
|
128
87
|
]
|
129
88
|
}
|
130
89
|
end
|
131
90
|
|
132
|
-
# Add libpq.dll to
|
91
|
+
# Add libpq.dll/.so to fat binary gemspecs
|
133
92
|
ext.cross_compiling do |spec|
|
134
|
-
spec.files << "
|
93
|
+
spec.files << "ports/#{spec.platform.to_s}/lib/libpq-ruby-pg.so.1" if spec.platform.to_s =~ /linux/
|
94
|
+
spec.files << "ports/#{spec.platform.to_s}/lib/libpq-ruby-pg.1.dylib" if spec.platform.to_s =~ /darwin/
|
95
|
+
spec.files << "ports/#{spec.platform.to_s}/lib/libpq.dll" if spec.platform.to_s =~ /mingw|mswin/
|
96
|
+
|
97
|
+
# Binary gems don't postgresql header+lib files
|
98
|
+
spec.metadata.delete("msys2_mingw_dependencies")
|
135
99
|
end
|
136
100
|
end
|
137
101
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
102
|
+
task 'gem:native:prepare' do
|
103
|
+
require 'io/console'
|
104
|
+
require 'rake_compiler_dock'
|
105
|
+
|
106
|
+
# Copy gem signing key and certs to be accessible from the docker container
|
107
|
+
mkdir_p 'build/gem'
|
108
|
+
sh "cp ~/.gem/gem-*.pem build/gem/ || true"
|
109
|
+
sh "bundle package"
|
110
|
+
begin
|
111
|
+
OpenSSL::PKey.read(File.read(File.expand_path("~/.gem/gem-private_key.pem")), ENV["GEM_PRIVATE_KEY_PASSPHRASE"] || "")
|
112
|
+
rescue OpenSSL::PKey::PKeyError
|
113
|
+
ENV["GEM_PRIVATE_KEY_PASSPHRASE"] = STDIN.getpass("Enter passphrase of gem signature key: ")
|
114
|
+
retry
|
150
115
|
end
|
151
116
|
end
|
152
117
|
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
118
|
+
task 'install_darwin_mig', [:arch] do |t, args|
|
119
|
+
sh <<~EOT
|
120
|
+
rm -rf bootstrap_cmds &&
|
121
|
+
git clone --branch=cross_platform https://github.com/markmentovai/bootstrap_cmds &&
|
122
|
+
cd bootstrap_cmds &&
|
123
|
+
autoreconf --install &&
|
124
|
+
sh configure &&
|
125
|
+
make &&
|
126
|
+
sed -E -i 's/^cppflags=(.*)/cppflags=(\\1 "-D#{args[:arch]}" "-I\\/opt\\/osxcross\\/target\\/SDK\\/MacOSX11.1.sdk\\/usr\\/include")/' migcom.tproj/mig.sh &&
|
127
|
+
sudo make install
|
128
|
+
EOT
|
157
129
|
end
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
130
|
+
|
131
|
+
CrossLibraries.each do |xlib|
|
132
|
+
platform = xlib.platform
|
133
|
+
desc "Build fat binary gem for platform #{platform}"
|
134
|
+
task "gem:native:#{platform}" => ['gem:native:prepare'] do
|
135
|
+
RakeCompilerDock.sh <<-EOT, platform: platform
|
136
|
+
#{ "sudo apt-get update && sudo apt-get install -y bison flex &&" if platform =~ /darwin/ }
|
137
|
+
#{ # remove nm on Linux to suppress PostgreSQL's check for exit which raises thread_exit as a false positive:
|
138
|
+
"sudo mv `which nm` `which nm`.bak &&" if platform =~ /linux/ }
|
139
|
+
sudo apt-get update && sudo apt-get install -y bison flex &&
|
140
|
+
(cp build/gem/gem-*.pem ~/.gem/ || true) &&
|
141
|
+
bundle install --local &&
|
142
|
+
#{ "rake install_darwin_mig[__arm64__]" if platform =~ /arm64-darwin/ }
|
143
|
+
#{ "rake install_darwin_mig[__x86_64__]" if platform =~ /x86_64-darwin/ }
|
144
|
+
rake native:#{platform} pkg/#{$gem_spec.full_name}-#{platform}.gem MAKEOPTS=-j`nproc` RUBY_CC_VERSION=#{RakeCompilerDock.ruby_cc_version("~>2.7", "~>3.0")}
|
145
|
+
EOT
|
173
146
|
end
|
147
|
+
desc "Build the native binary gems"
|
148
|
+
multitask 'gem:native' => "gem:native:#{platform}"
|
174
149
|
end
|
175
150
|
|
176
|
-
|
177
|
-
task :
|
151
|
+
RSpec::Core::RakeTask.new(:spec).rspec_opts = "--profile -cfdoc"
|
152
|
+
task :test => :spec
|
153
|
+
|
154
|
+
# Use the fivefish formatter for docs generated from development checkout
|
155
|
+
require 'rdoc/task'
|
156
|
+
|
157
|
+
RDoc::Task.new( 'docs' ) do |rdoc|
|
158
|
+
rdoc.options = $gem_spec.rdoc_options
|
159
|
+
rdoc.rdoc_files = $gem_spec.extra_rdoc_files
|
160
|
+
rdoc.generator = :fivefish
|
161
|
+
rdoc.rdoc_dir = 'doc'
|
162
|
+
end
|
178
163
|
|
164
|
+
desc "Build the source gem #{$gem_spec.full_name}.gem into the pkg directory"
|
165
|
+
task :gem => :build
|
179
166
|
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
Rake::Task[:clean].invoke
|
167
|
+
task :clobber do
|
168
|
+
puts "Stop any Postmaster instances that remain after testing."
|
169
|
+
require_relative 'spec/helpers'
|
170
|
+
PG::TestingHelpers.stop_existing_postmasters()
|
185
171
|
end
|
186
172
|
|
187
173
|
desc "Update list of server error codes"
|
188
174
|
task :update_error_codes do
|
189
|
-
URL_ERRORCODES_TXT = "http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;f=src/backend/utils/errcodes.txt;hb=refs/tags/
|
175
|
+
URL_ERRORCODES_TXT = "http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;f=src/backend/utils/errcodes.txt;hb=refs/tags/REL_17_0"
|
190
176
|
|
191
177
|
ERRORCODES_TXT = "ext/errorcodes.txt"
|
192
178
|
sh "wget #{URL_ERRORCODES_TXT.inspect} -O #{ERRORCODES_TXT.inspect} || curl #{URL_ERRORCODES_TXT.inspect} -o #{ERRORCODES_TXT.inspect}"
|
@@ -199,19 +185,12 @@ file 'ext/pg_errors.c' => ['ext/errorcodes.def'] do
|
|
199
185
|
touch 'ext/pg_errors.c'
|
200
186
|
end
|
201
187
|
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
spec.signing_key = nil
|
208
|
-
spec.version = "#{spec.version.bump}.0.pre#{Time.now.strftime("%Y%m%d%H%M%S")}"
|
209
|
-
spec.cert_chain = [ 'certs/ged.pem' ]
|
210
|
-
File.open( task.name, 'w' ) do |fh|
|
211
|
-
fh.write( spec.to_ruby )
|
212
|
-
end
|
213
|
-
end
|
214
|
-
|
215
|
-
CLOBBER.include( '*.gemspec' )
|
216
|
-
task :default => :gemspec
|
188
|
+
desc "Translate readme"
|
189
|
+
task :translate do
|
190
|
+
cd "translation" do
|
191
|
+
# po4a's lexer might change, so record its version for reference
|
192
|
+
sh "LANG=C po4a --version > .po4a-version"
|
217
193
|
|
194
|
+
sh "po4a po4a.cfg"
|
195
|
+
end
|
196
|
+
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,20 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIDLjCCAhagAwIBAgIBCzANBgkqhkiG9w0BAQsFADA9MQ4wDAYDVQQDDAVrYW5p
|
3
|
+
czEXMBUGCgmSJomT8ixkARkWB2NvbWNhcmQxEjAQBgoJkiaJk/IsZAEZFgJkZTAe
|
4
|
+
Fw0yMzA0MjgwOTI0NDhaFw0yNDA0MjcwOTI0NDhaMD0xDjAMBgNVBAMMBWthbmlz
|
5
|
+
MRcwFQYKCZImiZPyLGQBGRYHY29tY2FyZDESMBAGCgmSJomT8ixkARkWAmRlMIIB
|
6
|
+
IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApop+rNmg35bzRugZ21VMGqI6
|
7
|
+
HGzPLO4VHYncWn/xmgPU/ZMcZdfj6MzIaZJ/czXyt4eHpBk1r8QOV3gBXnRXEjVW
|
8
|
+
9xi+EdVOkTV2/AVFKThcbTAQGiF/bT1n2M+B1GTybRzMg6hyhOJeGPqIhLfJEpxn
|
9
|
+
lJi4+ENAVT4MpqHEAGB8yFoPC0GqiOHQsdHxQV3P3c2OZqG+yJey74QtwA2tLcLn
|
10
|
+
Q53c63+VLGsOjODl1yPn/2ejyq8qWu6ahfTxiIlSar2UbwtaQGBDFdb2CXgEufXT
|
11
|
+
L7oaPxlmj+Q2oLOfOnInd2Oxop59HoJCQPsg8f921J43NCQGA8VHK6paxIRDLQID
|
12
|
+
AQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUvgTdT7fe
|
13
|
+
x17ugO3IOsjEJwW7KP4wDQYJKoZIhvcNAQELBQADggEBACAxNXwfMGG7paZjnG/c
|
14
|
+
smdi/ocW2GmCNtILaSzDZqlD5LoA68MiO7u5vwWyBaDJ6giUB330VJoGRbWMxvxN
|
15
|
+
JU6Bnwa4yYp9YtF91wYIi7FXwIrCPKd9bk3bf4M5wECdsv+zvVceq2zRXqD7fci8
|
16
|
+
1LRG8ort/f4TgaT7B4aNwOaabA2UT6u0FGeglqxLkhir86MY3QQyBfJZUoTKWGkz
|
17
|
+
S9a7GXsYpe+8HMOaE4+SZp8SORKPgATND5m/4VdzuO59VXjE5UP7QpXigbxAt7H7
|
18
|
+
ciK5Du2ZDhowmWzZwNzR7VvVmfAK6RQJlRB03VkkQRWGld5yApOrYDne6WbD8kE0
|
19
|
+
uM8=
|
20
|
+
-----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-----
|
@@ -0,0 +1,24 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIEBDCCAmygAwIBAgIBAzANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1sYXJz
|
3
|
+
L0RDPWdyZWl6LXJlaW5zZG9yZi9EQz1kZTAeFw0yNDAyMjgxOTMxNDdaFw0yNTAy
|
4
|
+
MjcxOTMxNDdaMCgxJjAkBgNVBAMMHWxhcnMvREM9Z3JlaXotcmVpbnNkb3JmL0RD
|
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
|
+
7EfMFzANBgkqhkiG9w0BAQsFAAOCAYEArBmHSfnUyNWf3R1Fx0mMHloWGdcKn2D2
|
16
|
+
BsqTApXU2nADiyppIqRq4b9e7hw342uzadSLkoQcEFOxThLRhAcijoWfQVBcsbV/
|
17
|
+
ZsCY1qlUTIJuSWxaSyS4efUX+N4eMNyPM9oW/sphlWFo0DgI34Y9WB6HDzH+O71y
|
18
|
+
R7PARke3f4kYnRJf5yRQLPDrH9UYt9KlBQm6l7XMtr5EMnQt0EfcmZEi9H4t/vS2
|
19
|
+
haxvpFMdAKo4H46GBYNO96r6b74t++vgQSBTg/AFVwvRZwNSrPPcBfb4xxeEAhRR
|
20
|
+
x+LU7feIH7lZ//3buiyD03gLAEtHXai0Y+/VfuWIpwYJAl2BO/tU7FS/dtbJq9oc
|
21
|
+
dI36Yyzy+BrCM0WT4oCsagePNb97FaNhl4F6sM5JEPT0ZPxRx0i3G4TNNIYziVos
|
22
|
+
5wFER6XhvvLDFAMh/jMg+s7Wd5SbSHgHNSUaUGVtdWkVPOer6oF0aLdZUR3CETkn
|
23
|
+
5nWXZma/BUd3YgYA/Xumc6QQqIS4p7mr
|
24
|
+
-----END CERTIFICATE-----
|
data/ext/errorcodes.def
CHANGED
@@ -306,6 +306,10 @@
|
|
306
306
|
VALUE klass = define_error_class( "DuplicateJsonObjectKeyValue", "22" );
|
307
307
|
register_error_class( "22030", klass );
|
308
308
|
}
|
309
|
+
{
|
310
|
+
VALUE klass = define_error_class( "InvalidArgumentForSqlJsonDatetimeFunction", "22" );
|
311
|
+
register_error_class( "22031", klass );
|
312
|
+
}
|
309
313
|
{
|
310
314
|
VALUE klass = define_error_class( "InvalidJsonText", "22" );
|
311
315
|
register_error_class( "22032", klass );
|
@@ -362,6 +366,10 @@
|
|
362
366
|
VALUE klass = define_error_class( "SqlJsonScalarRequired", "22" );
|
363
367
|
register_error_class( "2203F", klass );
|
364
368
|
}
|
369
|
+
{
|
370
|
+
VALUE klass = define_error_class( "SqlJsonItemCannotBeCastToTargetType", "22" );
|
371
|
+
register_error_class( "2203G", klass );
|
372
|
+
}
|
365
373
|
{
|
366
374
|
VALUE klass = define_error_class( "IntegrityConstraintViolation", NULL );
|
367
375
|
register_error_class( "23000", klass );
|
@@ -445,6 +453,10 @@
|
|
445
453
|
VALUE klass = define_error_class( "IdleInTransactionSessionTimeout", "25" );
|
446
454
|
register_error_class( "25P03", klass );
|
447
455
|
}
|
456
|
+
{
|
457
|
+
VALUE klass = define_error_class( "TransactionTimeout", "25" );
|
458
|
+
register_error_class( "25P04", klass );
|
459
|
+
}
|
448
460
|
{
|
449
461
|
VALUE klass = define_error_class( "InvalidSqlStatementName", NULL );
|
450
462
|
register_error_class( "26000", klass );
|
@@ -856,6 +868,10 @@
|
|
856
868
|
VALUE klass = define_error_class( "DatabaseDropped", "57" );
|
857
869
|
register_error_class( "57P04", klass );
|
858
870
|
}
|
871
|
+
{
|
872
|
+
VALUE klass = define_error_class( "IdleSessionTimeout", "57" );
|
873
|
+
register_error_class( "57P05", klass );
|
874
|
+
}
|
859
875
|
{
|
860
876
|
VALUE klass = define_error_class( "SystemError", NULL );
|
861
877
|
register_error_class( "58000", klass );
|
@@ -873,11 +889,6 @@
|
|
873
889
|
VALUE klass = define_error_class( "DuplicateFile", "58" );
|
874
890
|
register_error_class( "58P02", klass );
|
875
891
|
}
|
876
|
-
{
|
877
|
-
VALUE klass = define_error_class( "SnapshotTooOld", NULL );
|
878
|
-
register_error_class( "72000", klass );
|
879
|
-
register_error_class( "72", klass );
|
880
|
-
}
|
881
892
|
{
|
882
893
|
VALUE klass = define_error_class( "ConfigFileError", NULL );
|
883
894
|
register_error_class( "F0000", klass );
|
data/ext/errorcodes.rb
CHANGED
File without changes
|
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-2024, 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
|
@@ -207,6 +207,7 @@ Section: Class 22 - Data Exception
|
|
207
207
|
2200S E ERRCODE_INVALID_XML_COMMENT invalid_xml_comment
|
208
208
|
2200T E ERRCODE_INVALID_XML_PROCESSING_INSTRUCTION invalid_xml_processing_instruction
|
209
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
|
210
211
|
22032 E ERRCODE_INVALID_JSON_TEXT invalid_json_text
|
211
212
|
22033 E ERRCODE_INVALID_SQL_JSON_SUBSCRIPT invalid_sql_json_subscript
|
212
213
|
22034 E ERRCODE_MORE_THAN_ONE_SQL_JSON_ITEM more_than_one_sql_json_item
|
@@ -221,6 +222,7 @@ Section: Class 22 - Data Exception
|
|
221
222
|
2203D E ERRCODE_TOO_MANY_JSON_ARRAY_ELEMENTS too_many_json_array_elements
|
222
223
|
2203E E ERRCODE_TOO_MANY_JSON_OBJECT_MEMBERS too_many_json_object_members
|
223
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
|
224
226
|
|
225
227
|
Section: Class 23 - Integrity Constraint Violation
|
226
228
|
|
@@ -250,6 +252,7 @@ Section: Class 25 - Invalid Transaction State
|
|
250
252
|
25P01 E ERRCODE_NO_ACTIVE_SQL_TRANSACTION no_active_sql_transaction
|
251
253
|
25P02 E ERRCODE_IN_FAILED_SQL_TRANSACTION in_failed_sql_transaction
|
252
254
|
25P03 E ERRCODE_IDLE_IN_TRANSACTION_SESSION_TIMEOUT idle_in_transaction_session_timeout
|
255
|
+
25P04 E ERRCODE_TRANSACTION_TIMEOUT transaction_timeout
|
253
256
|
|
254
257
|
Section: Class 26 - Invalid SQL Statement Name
|
255
258
|
|
@@ -427,6 +430,7 @@ Section: Class 57 - Operator Intervention
|
|
427
430
|
57P02 E ERRCODE_CRASH_SHUTDOWN crash_shutdown
|
428
431
|
57P03 E ERRCODE_CANNOT_CONNECT_NOW cannot_connect_now
|
429
432
|
57P04 E ERRCODE_DATABASE_DROPPED database_dropped
|
433
|
+
57P05 E ERRCODE_IDLE_SESSION_TIMEOUT idle_session_timeout
|
430
434
|
|
431
435
|
Section: Class 58 - System Error (errors external to PostgreSQL itself)
|
432
436
|
|
@@ -436,10 +440,6 @@ Section: Class 58 - System Error (errors external to PostgreSQL itself)
|
|
436
440
|
58P01 E ERRCODE_UNDEFINED_FILE undefined_file
|
437
441
|
58P02 E ERRCODE_DUPLICATE_FILE duplicate_file
|
438
442
|
|
439
|
-
Section: Class 72 - Snapshot Failure
|
440
|
-
# (class borrowed from Oracle)
|
441
|
-
72000 E ERRCODE_SNAPSHOT_TOO_OLD snapshot_too_old
|
442
|
-
|
443
443
|
Section: Class F0 - Configuration File Error
|
444
444
|
|
445
445
|
# (PostgreSQL-specific error class)
|