pg 0.18.4 → 1.2.3
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.tar.gz.sig +0 -0
- data/BSDL +2 -2
- data/ChangeLog +0 -5911
- data/History.rdoc +240 -0
- data/Manifest.txt +8 -20
- data/README-Windows.rdoc +4 -4
- data/README.ja.rdoc +1 -2
- data/README.rdoc +64 -15
- data/Rakefile +20 -21
- data/Rakefile.cross +67 -69
- data/ext/errorcodes.def +101 -0
- data/ext/errorcodes.rb +1 -1
- data/ext/errorcodes.txt +33 -2
- data/ext/extconf.rb +26 -36
- data/ext/gvl_wrappers.c +4 -0
- data/ext/gvl_wrappers.h +27 -39
- data/ext/pg.c +156 -145
- data/ext/pg.h +74 -98
- data/ext/pg_binary_decoder.c +82 -15
- data/ext/pg_binary_encoder.c +20 -19
- data/ext/pg_coder.c +103 -21
- data/ext/pg_connection.c +917 -523
- data/ext/pg_copy_coder.c +50 -12
- data/ext/pg_record_coder.c +491 -0
- data/ext/pg_result.c +590 -208
- data/ext/pg_text_decoder.c +606 -40
- data/ext/pg_text_encoder.c +245 -94
- data/ext/pg_tuple.c +549 -0
- data/ext/pg_type_map.c +14 -7
- data/ext/pg_type_map_all_strings.c +4 -4
- data/ext/pg_type_map_by_class.c +9 -4
- data/ext/pg_type_map_by_column.c +7 -6
- data/ext/pg_type_map_by_mri_type.c +1 -1
- data/ext/pg_type_map_by_oid.c +3 -2
- data/ext/pg_type_map_in_ruby.c +1 -1
- data/ext/{util.c → pg_util.c} +10 -10
- data/ext/{util.h → pg_util.h} +2 -2
- data/lib/pg.rb +23 -13
- data/lib/pg/basic_type_mapping.rb +155 -32
- data/lib/pg/binary_decoder.rb +23 -0
- data/lib/pg/coder.rb +23 -2
- data/lib/pg/connection.rb +73 -13
- data/lib/pg/constants.rb +2 -1
- data/lib/pg/exceptions.rb +2 -1
- data/lib/pg/result.rb +24 -7
- data/lib/pg/text_decoder.rb +24 -22
- data/lib/pg/text_encoder.rb +40 -8
- data/lib/pg/tuple.rb +30 -0
- data/lib/pg/type_map_by_column.rb +3 -2
- data/spec/helpers.rb +61 -36
- data/spec/pg/basic_type_mapping_spec.rb +415 -36
- data/spec/pg/connection_spec.rb +732 -327
- data/spec/pg/connection_sync_spec.rb +41 -0
- data/spec/pg/result_spec.rb +253 -21
- data/spec/pg/tuple_spec.rb +333 -0
- data/spec/pg/type_map_by_class_spec.rb +4 -4
- data/spec/pg/type_map_by_column_spec.rb +6 -2
- data/spec/pg/type_map_by_mri_type_spec.rb +2 -2
- data/spec/pg/type_map_by_oid_spec.rb +3 -3
- data/spec/pg/type_map_in_ruby_spec.rb +1 -1
- data/spec/pg/type_map_spec.rb +1 -1
- data/spec/pg/type_spec.rb +446 -20
- data/spec/pg_spec.rb +2 -2
- metadata +63 -72
- metadata.gz.sig +0 -0
- data/sample/array_insert.rb +0 -20
- data/sample/async_api.rb +0 -106
- data/sample/async_copyto.rb +0 -39
- data/sample/async_mixed.rb +0 -56
- data/sample/check_conn.rb +0 -21
- data/sample/copyfrom.rb +0 -81
- data/sample/copyto.rb +0 -19
- data/sample/cursor.rb +0 -21
- data/sample/disk_usage_report.rb +0 -186
- data/sample/issue-119.rb +0 -94
- data/sample/losample.rb +0 -69
- data/sample/minimal-testcase.rb +0 -17
- data/sample/notify_wait.rb +0 -72
- data/sample/pg_statistics.rb +0 -294
- data/sample/replication_monitor.rb +0 -231
- data/sample/test_binary_values.rb +0 -33
- data/sample/wal_shipper.rb +0 -434
- data/sample/warehouse_partitions.rb +0 -320
data/Rakefile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# -*- rake -*-
|
2
2
|
|
3
3
|
require 'rbconfig'
|
4
4
|
require 'pathname'
|
@@ -35,6 +35,8 @@ TEST_DIRECTORY = BASEDIR + "tmp_test_specs"
|
|
35
35
|
|
36
36
|
CLOBBER.include( TEST_DIRECTORY.to_s )
|
37
37
|
CLEAN.include( PKGDIR.to_s, TMPDIR.to_s )
|
38
|
+
CLEAN.include "lib/*/libpq.dll"
|
39
|
+
CLEAN.include "lib/pg_ext.*"
|
38
40
|
|
39
41
|
# Set up Hoe plugins
|
40
42
|
Hoe.plugin :mercurial
|
@@ -55,22 +57,21 @@ $hoespec = Hoe.spec 'pg' do
|
|
55
57
|
self.extra_rdoc_files = Rake::FileList[ '*.rdoc' ]
|
56
58
|
self.extra_rdoc_files.include( 'POSTGRES', 'LICENSE' )
|
57
59
|
self.extra_rdoc_files.include( 'ext/*.c' )
|
58
|
-
self.license
|
60
|
+
self.license 'BSD-2-Clause'
|
59
61
|
|
60
62
|
self.developer 'Michael Granger', 'ged@FaerieMUD.org'
|
61
63
|
self.developer 'Lars Kanis', 'lars@greiz-reinsdorf.de'
|
62
64
|
|
63
|
-
self.dependency 'rake-compiler', '~> 0
|
64
|
-
self.dependency 'rake-compiler-dock', '~> 0
|
65
|
-
self.dependency 'hoe', '~>
|
66
|
-
self.dependency 'hoe-deveiate', '~> 0.6', :developer
|
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
|
67
68
|
self.dependency 'hoe-bundler', '~> 1.0', :developer
|
68
|
-
self.dependency 'rspec', '~> 3.
|
69
|
+
self.dependency 'rspec', '~> 3.5', :developer
|
70
|
+
self.dependency 'rdoc', '~> 5.1', :developer
|
69
71
|
|
70
|
-
self.spec_extras[:licenses] = ['BSD', 'Ruby', 'GPL']
|
71
72
|
self.spec_extras[:extensions] = [ 'ext/extconf.rb' ]
|
72
73
|
|
73
|
-
self.require_ruby_version( '>=
|
74
|
+
self.require_ruby_version( '>= 2.2' )
|
74
75
|
|
75
76
|
self.hg_sign_tags = true if self.respond_to?( :hg_sign_tags= )
|
76
77
|
self.check_history_on_release = true if self.respond_to?( :check_history_on_release= )
|
@@ -81,7 +82,7 @@ end
|
|
81
82
|
ENV['VERSION'] ||= $hoespec.spec.version.to_s
|
82
83
|
|
83
84
|
# Tests should pass before checking in
|
84
|
-
task 'hg:precheckin' => [ :check_history, :check_manifest, :spec ]
|
85
|
+
task 'hg:precheckin' => [ :check_history, :check_manifest, :spec, :gemspec ]
|
85
86
|
|
86
87
|
# Support for 'rvm specs'
|
87
88
|
task :specs => :spec
|
@@ -97,7 +98,7 @@ task :test do
|
|
97
98
|
# the installed gem dir. So we clear the task rake-compiler set up
|
98
99
|
# to break the dependency between :spec and :compile when running under
|
99
100
|
# rubygems-test, and then run :spec.
|
100
|
-
Rake::Task[ EXT.to_s ].clear
|
101
|
+
Rake::Task[ EXT.to_s ].clear if File.exist?(EXT.to_s)
|
101
102
|
Rake::Task[ :spec ].execute
|
102
103
|
end
|
103
104
|
|
@@ -106,8 +107,6 @@ task :maint do
|
|
106
107
|
ENV['MAINTAINER_MODE'] = 'yes'
|
107
108
|
end
|
108
109
|
|
109
|
-
ENV['RUBY_CC_VERSION'] ||= '1.8.7:1.9.2:2.0.0'
|
110
|
-
|
111
110
|
# Rake-compiler task
|
112
111
|
Rake::ExtensionTask.new do |ext|
|
113
112
|
ext.name = 'pg_ext'
|
@@ -116,7 +115,7 @@ Rake::ExtensionTask.new do |ext|
|
|
116
115
|
ext.lib_dir = 'lib'
|
117
116
|
ext.source_pattern = "*.{c,h}"
|
118
117
|
ext.cross_compile = true
|
119
|
-
ext.cross_platform = CrossLibraries.map
|
118
|
+
ext.cross_platform = CrossLibraries.map(&:for_platform)
|
120
119
|
|
121
120
|
ext.cross_config_options += CrossLibraries.map do |lib|
|
122
121
|
{
|
@@ -132,8 +131,7 @@ Rake::ExtensionTask.new do |ext|
|
|
132
131
|
|
133
132
|
# Add libpq.dll to windows binary gemspec
|
134
133
|
ext.cross_compiling do |spec|
|
135
|
-
|
136
|
-
spec.files << "lib/#{spec.platform.to_s.gsub(/^x86-/, "i386-")}/libpq.dll"
|
134
|
+
spec.files << "lib/#{spec.platform}/libpq.dll"
|
137
135
|
end
|
138
136
|
end
|
139
137
|
|
@@ -157,6 +155,7 @@ end
|
|
157
155
|
file '.hg/branch' do
|
158
156
|
warn "WARNING: You need the Mercurial repo to update the ChangeLog"
|
159
157
|
end
|
158
|
+
Rake::Task["ChangeLog"].clear
|
160
159
|
file 'ChangeLog' do |task|
|
161
160
|
if File.exist?('.hg/branch')
|
162
161
|
$stderr.puts "Updating the changelog..."
|
@@ -187,13 +186,11 @@ end
|
|
187
186
|
|
188
187
|
desc "Update list of server error codes"
|
189
188
|
task :update_error_codes do
|
190
|
-
URL_ERRORCODES_TXT = "http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;f=src/backend/utils/errcodes.txt;hb=
|
189
|
+
URL_ERRORCODES_TXT = "http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;f=src/backend/utils/errcodes.txt;hb=refs/tags/REL_12_0"
|
191
190
|
|
192
191
|
ERRORCODES_TXT = "ext/errorcodes.txt"
|
193
192
|
sh "wget #{URL_ERRORCODES_TXT.inspect} -O #{ERRORCODES_TXT.inspect} || curl #{URL_ERRORCODES_TXT.inspect} -o #{ERRORCODES_TXT.inspect}"
|
194
|
-
end
|
195
193
|
|
196
|
-
file 'ext/errorcodes.def' => ['ext/errorcodes.rb', 'ext/errorcodes.txt'] do
|
197
194
|
ruby 'ext/errorcodes.rb', 'ext/errorcodes.txt', 'ext/errorcodes.def'
|
198
195
|
end
|
199
196
|
|
@@ -207,12 +204,14 @@ file GEMSPEC => __FILE__
|
|
207
204
|
task GEMSPEC do |task|
|
208
205
|
spec = $hoespec.spec
|
209
206
|
spec.files.delete( '.gemtest' )
|
210
|
-
spec.
|
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' ]
|
211
210
|
File.open( task.name, 'w' ) do |fh|
|
212
211
|
fh.write( spec.to_ruby )
|
213
212
|
end
|
214
213
|
end
|
215
214
|
|
216
|
-
CLOBBER.include(
|
215
|
+
CLOBBER.include( '*.gemspec' )
|
217
216
|
task :default => :gemspec
|
218
217
|
|
data/Rakefile.cross
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
# -*- rake -*-
|
2
2
|
|
3
3
|
require 'uri'
|
4
4
|
require 'tempfile'
|
@@ -29,15 +29,15 @@ class CrossLibrary < OpenStruct
|
|
29
29
|
self.host_platform = toolchain
|
30
30
|
|
31
31
|
# Cross-compilation constants
|
32
|
-
self.openssl_version = ENV['OPENSSL_VERSION'] || '1.
|
33
|
-
self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '
|
32
|
+
self.openssl_version = ENV['OPENSSL_VERSION'] || '1.1.1d'
|
33
|
+
self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '12.1'
|
34
34
|
|
35
35
|
# Check if symlinks work in the current working directory.
|
36
36
|
# This fails, if rake-compiler-dock is running on a Windows box.
|
37
37
|
begin
|
38
38
|
FileUtils.rm_f '.test_symlink'
|
39
39
|
FileUtils.ln_s '/', '.test_symlink'
|
40
|
-
rescue SystemCallError
|
40
|
+
rescue NotImplementedError, SystemCallError
|
41
41
|
# Symlinks don't work -> use home directory instead
|
42
42
|
self.compile_home = Pathname( "~/.ruby-pg-build" ).expand_path
|
43
43
|
else
|
@@ -45,6 +45,8 @@ class CrossLibrary < OpenStruct
|
|
45
45
|
end
|
46
46
|
self.static_sourcesdir = compile_home + 'sources'
|
47
47
|
self.static_builddir = compile_home + 'builds' + for_platform
|
48
|
+
CLOBBER.include( static_sourcesdir )
|
49
|
+
CLEAN.include( static_builddir )
|
48
50
|
|
49
51
|
# Static OpenSSL build vars
|
50
52
|
self.static_openssl_builddir = static_builddir + "openssl-#{openssl_version}"
|
@@ -54,8 +56,8 @@ class CrossLibrary < OpenStruct
|
|
54
56
|
self.openssl_tarball = static_sourcesdir + File.basename( openssl_source_uri.path )
|
55
57
|
self.openssl_makefile = static_openssl_builddir + 'Makefile'
|
56
58
|
|
57
|
-
self.
|
58
|
-
self.
|
59
|
+
self.libssl = static_openssl_builddir + 'libssl.a'
|
60
|
+
self.libcrypto = static_openssl_builddir + 'libcrypto.a'
|
59
61
|
|
60
62
|
self.openssl_patches = Rake::FileList[ (MISCDIR + "openssl-#{openssl_version}.*.patch").to_s ]
|
61
63
|
|
@@ -81,19 +83,6 @@ class CrossLibrary < OpenStruct
|
|
81
83
|
# clean intermediate files and folders
|
82
84
|
CLEAN.include( static_builddir.to_s )
|
83
85
|
|
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
86
|
#####################################################################
|
98
87
|
### C R O S S - C O M P I L A T I O N - T A S K S
|
99
88
|
#####################################################################
|
@@ -126,11 +115,9 @@ class CrossLibrary < OpenStruct
|
|
126
115
|
end
|
127
116
|
|
128
117
|
self.cmd_prelude = [
|
129
|
-
|
130
|
-
"
|
118
|
+
"env",
|
119
|
+
"CROSS_COMPILE=#{host_platform}-",
|
131
120
|
"CFLAGS=-DDSO_WIN32",
|
132
|
-
"AR=#{host_platform}-ar",
|
133
|
-
"RANLIB=#{host_platform}-ranlib"
|
134
121
|
]
|
135
122
|
|
136
123
|
|
@@ -145,9 +132,9 @@ class CrossLibrary < OpenStruct
|
|
145
132
|
end
|
146
133
|
|
147
134
|
desc "compile static openssl libraries"
|
148
|
-
task
|
135
|
+
task "openssl_libs:#{for_platform}" => [ libssl, libcrypto ]
|
149
136
|
|
150
|
-
task
|
137
|
+
task "compile_static_openssl:#{for_platform}" => openssl_makefile do |t|
|
151
138
|
chdir( static_openssl_builddir ) do
|
152
139
|
cmd = cmd_prelude.dup
|
153
140
|
cmd << 'make' << "-j#{NUM_CPUS}" << 'build_libs'
|
@@ -156,14 +143,14 @@ class CrossLibrary < OpenStruct
|
|
156
143
|
end
|
157
144
|
end
|
158
145
|
|
159
|
-
desc "compile static #{
|
160
|
-
file
|
161
|
-
|
146
|
+
desc "compile static #{libssl}"
|
147
|
+
file libssl => "compile_static_openssl:#{for_platform}" do |t|
|
148
|
+
rm t.name.gsub(/\.a$/, ".dll.a")
|
162
149
|
end
|
163
150
|
|
164
|
-
desc "compile static #{
|
165
|
-
file
|
166
|
-
|
151
|
+
desc "compile static #{libcrypto}"
|
152
|
+
file libcrypto => "compile_static_openssl:#{for_platform}" do |t|
|
153
|
+
rm t.name.gsub(/\.a$/, ".dll.a")
|
167
154
|
end
|
168
155
|
|
169
156
|
|
@@ -193,7 +180,7 @@ class CrossLibrary < OpenStruct
|
|
193
180
|
end
|
194
181
|
|
195
182
|
# generate the makefile in a clean build location
|
196
|
-
file postgresql_global_makefile => [ static_postgresql_builddir,
|
183
|
+
file postgresql_global_makefile => [ static_postgresql_builddir, "openssl_libs:#{for_platform}" ] do |t|
|
197
184
|
options = [
|
198
185
|
"--target=#{host_platform}",
|
199
186
|
"--host=#{host_platform}",
|
@@ -207,7 +194,7 @@ class CrossLibrary < OpenStruct
|
|
207
194
|
cmd << "CFLAGS=-L#{static_openssl_builddir}"
|
208
195
|
cmd << "LDFLAGS=-L#{static_openssl_builddir}"
|
209
196
|
cmd << "LDFLAGS_SL=-L#{static_openssl_builddir}"
|
210
|
-
cmd << "LIBS=-lwsock32 -lgdi32"
|
197
|
+
cmd << "LIBS=-lwsock32 -lgdi32 -lws2_32"
|
211
198
|
cmd << "CPPFLAGS=-I#{static_openssl_builddir}/include"
|
212
199
|
|
213
200
|
run( *cmd )
|
@@ -221,18 +208,21 @@ class CrossLibrary < OpenStruct
|
|
221
208
|
chdir( static_postgresql_srcdir + "common" ) do
|
222
209
|
sh 'make', "-j#{NUM_CPUS}"
|
223
210
|
end
|
211
|
+
chdir( static_postgresql_srcdir + "port" ) do
|
212
|
+
sh 'make', "-j#{NUM_CPUS}"
|
213
|
+
end
|
224
214
|
|
225
215
|
chdir( postgresql_lib.dirname ) do
|
226
216
|
sh 'make',
|
227
217
|
"-j#{NUM_CPUS}",
|
228
218
|
postgresql_lib.basename.to_s,
|
229
|
-
'SHLIB_LINK=-
|
219
|
+
'SHLIB_LINK=-lssl -lcrypto -lcrypt32 -lgdi32 -lsecur32 -lwsock32 -lws2_32'
|
230
220
|
end
|
231
221
|
end
|
232
222
|
|
233
223
|
|
234
224
|
#desc 'compile libpg.a'
|
235
|
-
task
|
225
|
+
task "native:#{for_platform}" => postgresql_lib
|
236
226
|
|
237
227
|
# copy libpq.dll to lib dir
|
238
228
|
dest_libpq = "lib/#{for_platform}/#{postgresql_lib.basename}"
|
@@ -247,22 +237,27 @@ class CrossLibrary < OpenStruct
|
|
247
237
|
cp postgresql_lib, stage_libpq
|
248
238
|
end
|
249
239
|
end
|
250
|
-
end
|
251
240
|
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
241
|
+
def download(url, save_to)
|
242
|
+
part = save_to+".part"
|
243
|
+
sh "wget #{url.to_s.inspect} -O #{part.inspect} || curl #{url.to_s.inspect} -o #{part.inspect}"
|
244
|
+
FileUtils.mv part, save_to
|
245
|
+
end
|
246
|
+
|
247
|
+
def run(*args)
|
248
|
+
sh(*args)
|
258
249
|
end
|
259
|
-
|
260
|
-
|
261
|
-
|
250
|
+
end
|
251
|
+
|
252
|
+
CrossLibraries = [
|
253
|
+
['x86-mingw32', 'mingw', 'i686-w64-mingw32'],
|
254
|
+
['x64-mingw32', 'mingw64', 'x86_64-w64-mingw32'],
|
255
|
+
].map do |platform, openssl_config, toolchain|
|
256
|
+
CrossLibrary.new platform, openssl_config, toolchain
|
262
257
|
end
|
263
258
|
|
264
259
|
desc 'cross compile pg for win32'
|
265
|
-
task :cross => [ :mingw32
|
260
|
+
task :cross => [ :mingw32 ]
|
266
261
|
|
267
262
|
task :mingw32 do
|
268
263
|
# Use Rake::ExtensionCompiler helpers to find the proper host
|
@@ -273,29 +268,32 @@ task :mingw32 do
|
|
273
268
|
end
|
274
269
|
end
|
275
270
|
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
271
|
+
task 'gem:windows:prepare' do
|
272
|
+
require 'io/console'
|
273
|
+
require 'rake_compiler_dock'
|
274
|
+
|
275
|
+
# Copy gem signing key and certs to be accessable from the docker container
|
276
|
+
mkdir_p 'build/gem'
|
277
|
+
sh "cp ~/.gem/gem-*.pem build/gem/ || true"
|
278
|
+
sh "bundle package"
|
279
|
+
begin
|
280
|
+
OpenSSL::PKey.read(File.read(File.expand_path("~/.gem/gem-private_key.pem")), ENV["GEM_PRIVATE_KEY_PASSPHRASE"] || "")
|
281
|
+
rescue OpenSSL::PKey::PKeyError
|
282
|
+
ENV["GEM_PRIVATE_KEY_PASSPHRASE"] = STDIN.getpass("Enter passphrase of gem signature key: ")
|
283
|
+
retry
|
284
|
+
end
|
285
285
|
end
|
286
286
|
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
rake cross native gem RUBYOPT=--disable-rubygems RUBY_CC_VERSION=1.9.3:2.0.0:2.1.6:2.2.2
|
300
|
-
EOT
|
287
|
+
CrossLibraries.each do |xlib|
|
288
|
+
platform = xlib.for_platform
|
289
|
+
desc "Build fat binary gem for platform #{platform}"
|
290
|
+
task "gem:windows:#{platform}" => ['ChangeLog', 'gem:windows:prepare', xlib.openssl_tarball, xlib.postgresql_tarball] do
|
291
|
+
RakeCompilerDock.sh <<-EOT, platform: platform
|
292
|
+
(cp build/gem/gem-*.pem ~/.gem/ || true) &&
|
293
|
+
bundle install --local &&
|
294
|
+
rake native:#{platform} pkg/#{$hoespec.spec.full_name}-#{platform}.gem MAKE="make -j`nproc`"
|
295
|
+
EOT
|
296
|
+
end
|
297
|
+
desc "Build the windows binary gems"
|
298
|
+
multitask 'gem:windows' => "gem:windows:#{platform}"
|
301
299
|
end
|
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,66 @@
|
|
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( "InvalidJsonText", "22" );
|
311
|
+
register_error_class( "22032", klass );
|
312
|
+
}
|
313
|
+
{
|
314
|
+
VALUE klass = define_error_class( "InvalidSqlJsonSubscript", "22" );
|
315
|
+
register_error_class( "22033", klass );
|
316
|
+
}
|
317
|
+
{
|
318
|
+
VALUE klass = define_error_class( "MoreThanOneSqlJsonItem", "22" );
|
319
|
+
register_error_class( "22034", klass );
|
320
|
+
}
|
321
|
+
{
|
322
|
+
VALUE klass = define_error_class( "NoSqlJsonItem", "22" );
|
323
|
+
register_error_class( "22035", klass );
|
324
|
+
}
|
325
|
+
{
|
326
|
+
VALUE klass = define_error_class( "NonNumericSqlJsonItem", "22" );
|
327
|
+
register_error_class( "22036", klass );
|
328
|
+
}
|
329
|
+
{
|
330
|
+
VALUE klass = define_error_class( "NonUniqueKeysInAJsonObject", "22" );
|
331
|
+
register_error_class( "22037", klass );
|
332
|
+
}
|
333
|
+
{
|
334
|
+
VALUE klass = define_error_class( "SingletonSqlJsonItemRequired", "22" );
|
335
|
+
register_error_class( "22038", klass );
|
336
|
+
}
|
337
|
+
{
|
338
|
+
VALUE klass = define_error_class( "SqlJsonArrayNotFound", "22" );
|
339
|
+
register_error_class( "22039", klass );
|
340
|
+
}
|
341
|
+
{
|
342
|
+
VALUE klass = define_error_class( "SqlJsonMemberNotFound", "22" );
|
343
|
+
register_error_class( "2203A", klass );
|
344
|
+
}
|
345
|
+
{
|
346
|
+
VALUE klass = define_error_class( "SqlJsonNumberNotFound", "22" );
|
347
|
+
register_error_class( "2203B", klass );
|
348
|
+
}
|
349
|
+
{
|
350
|
+
VALUE klass = define_error_class( "SqlJsonObjectNotFound", "22" );
|
351
|
+
register_error_class( "2203C", klass );
|
352
|
+
}
|
353
|
+
{
|
354
|
+
VALUE klass = define_error_class( "TooManyJsonArrayElements", "22" );
|
355
|
+
register_error_class( "2203D", klass );
|
356
|
+
}
|
357
|
+
{
|
358
|
+
VALUE klass = define_error_class( "TooManyJsonObjectMembers", "22" );
|
359
|
+
register_error_class( "2203E", klass );
|
360
|
+
}
|
361
|
+
{
|
362
|
+
VALUE klass = define_error_class( "SqlJsonScalarRequired", "22" );
|
363
|
+
register_error_class( "2203F", klass );
|
364
|
+
}
|
289
365
|
{
|
290
366
|
VALUE klass = define_error_class( "IntegrityConstraintViolation", NULL );
|
291
367
|
register_error_class( "23000", klass );
|
@@ -365,6 +441,10 @@
|
|
365
441
|
VALUE klass = define_error_class( "InFailedSqlTransaction", "25" );
|
366
442
|
register_error_class( "25P02", klass );
|
367
443
|
}
|
444
|
+
{
|
445
|
+
VALUE klass = define_error_class( "IdleInTransactionSessionTimeout", "25" );
|
446
|
+
register_error_class( "25P03", klass );
|
447
|
+
}
|
368
448
|
{
|
369
449
|
VALUE klass = define_error_class( "InvalidSqlStatementName", NULL );
|
370
450
|
register_error_class( "26000", klass );
|
@@ -466,6 +546,10 @@
|
|
466
546
|
VALUE klass = define_error_class( "ERIESrfProtocolViolated", "39" );
|
467
547
|
register_error_class( "39P02", klass );
|
468
548
|
}
|
549
|
+
{
|
550
|
+
VALUE klass = define_error_class( "ERIEEventTriggerProtocolViolated", "39" );
|
551
|
+
register_error_class( "39P03", klass );
|
552
|
+
}
|
469
553
|
{
|
470
554
|
VALUE klass = define_error_class( "SavepointException", NULL );
|
471
555
|
register_error_class( "3B000", klass );
|
@@ -571,6 +655,10 @@
|
|
571
655
|
VALUE klass = define_error_class( "WrongObjectType", "42" );
|
572
656
|
register_error_class( "42809", klass );
|
573
657
|
}
|
658
|
+
{
|
659
|
+
VALUE klass = define_error_class( "GeneratedAlways", "42" );
|
660
|
+
register_error_class( "428C9", klass );
|
661
|
+
}
|
574
662
|
{
|
575
663
|
VALUE klass = define_error_class( "UndefinedColumn", "42" );
|
576
664
|
register_error_class( "42703", klass );
|
@@ -739,6 +827,10 @@
|
|
739
827
|
VALUE klass = define_error_class( "LockNotAvailable", "55" );
|
740
828
|
register_error_class( "55P03", klass );
|
741
829
|
}
|
830
|
+
{
|
831
|
+
VALUE klass = define_error_class( "UnsafeNewEnumValueUsage", "55" );
|
832
|
+
register_error_class( "55P04", klass );
|
833
|
+
}
|
742
834
|
{
|
743
835
|
VALUE klass = define_error_class( "OperatorIntervention", NULL );
|
744
836
|
register_error_class( "57000", klass );
|
@@ -781,6 +873,11 @@
|
|
781
873
|
VALUE klass = define_error_class( "DuplicateFile", "58" );
|
782
874
|
register_error_class( "58P02", klass );
|
783
875
|
}
|
876
|
+
{
|
877
|
+
VALUE klass = define_error_class( "SnapshotTooOld", NULL );
|
878
|
+
register_error_class( "72000", klass );
|
879
|
+
register_error_class( "72", klass );
|
880
|
+
}
|
784
881
|
{
|
785
882
|
VALUE klass = define_error_class( "ConfigFileError", NULL );
|
786
883
|
register_error_class( "F0000", klass );
|
@@ -916,6 +1013,10 @@
|
|
916
1013
|
VALUE klass = define_error_class( "TooManyRows", "P0" );
|
917
1014
|
register_error_class( "P0003", klass );
|
918
1015
|
}
|
1016
|
+
{
|
1017
|
+
VALUE klass = define_error_class( "AssertFailure", "P0" );
|
1018
|
+
register_error_class( "P0004", klass );
|
1019
|
+
}
|
919
1020
|
{
|
920
1021
|
VALUE klass = define_error_class( "InternalError", NULL );
|
921
1022
|
register_error_class( "XX000", klass );
|