pg 1.2.0 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +14 -0
- data/README.rdoc +1 -1
- data/Rakefile +4 -2
- data/Rakefile.cross +41 -42
- data/ext/pg_result.c +10 -4
- data/lib/pg.rb +3 -2
- metadata +18 -19
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a07adb58b0060e91909dcffc56c527bc539ab4ccd8a208644386f9c1010a1ba1
|
4
|
+
data.tar.gz: f32870256474e8495feb8a8c17d9313c25e48d5d79e743d6dff99ba063aa6057
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d93ea73305d727ccd5d0a672b339038c19af2e7884fec45d145a5496dd310c3a161e77bc429f2c8ab93906c41b124e4eb33772bdfbb5205f3950c919f98b6876
|
7
|
+
data.tar.gz: 26213376d23c07bcb28192a8ec9815679f2b6409b353750b560af1c9d7d592c3ec136f16872d2e3cce5762f4a51954c643f8560923a5381da107171c9312a7fd
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
== v1.2.2 [2020-01-06] Michael Granger <ged@FaerieMUD.org>
|
2
|
+
|
3
|
+
Enhancements:
|
4
|
+
|
5
|
+
- Add a binary gem for Ruby 2.7.
|
6
|
+
|
7
|
+
|
8
|
+
== v1.2.1 [2020-01-02] Michael Granger <ged@FaerieMUD.org>
|
9
|
+
|
10
|
+
Enhancements:
|
11
|
+
|
12
|
+
- Added internal API for sequel_pg compatibility.
|
13
|
+
|
14
|
+
|
1
15
|
== v1.2.0 [2019-12-20] Michael Granger <ged@FaerieMUD.org>
|
2
16
|
|
3
17
|
Repository:
|
data/README.rdoc
CHANGED
@@ -118,7 +118,7 @@ PG::Coder objects can be used to set up a PG::TypeMap or alternatively
|
|
118
118
|
to convert single values to/from their string representation.
|
119
119
|
|
120
120
|
The following PostgreSQL column types are supported by ruby-pg (TE = Text Encoder, TD = Text Decoder, BE = Binary Encoder, BD = Binary Decoder):
|
121
|
-
* Integer: {TE}[rdoc-ref:PG::TextEncoder::Integer], {TD}[rdoc-ref:PG::TextDecoder::Integer], {BD}[rdoc-ref:PG::BinaryDecoder::Integer]
|
121
|
+
* Integer: {TE}[rdoc-ref:PG::TextEncoder::Integer], {TD}[rdoc-ref:PG::TextDecoder::Integer], {BD}[rdoc-ref:PG::BinaryDecoder::Integer] 💡 No links? Switch to {here}[https://deveiate.org/code/pg/README_rdoc.html#label-Type+Casts] 💡
|
122
122
|
* BE: {Int2}[rdoc-ref:PG::BinaryEncoder::Int2], {Int4}[rdoc-ref:PG::BinaryEncoder::Int4], {Int8}[rdoc-ref:PG::BinaryEncoder::Int8]
|
123
123
|
* Float: {TE}[rdoc-ref:PG::TextEncoder::Float], {TD}[rdoc-ref:PG::TextDecoder::Float], {BD}[rdoc-ref:PG::BinaryDecoder::Float]
|
124
124
|
* Numeric: {TE}[rdoc-ref:PG::TextEncoder::Numeric], {TD}[rdoc-ref:PG::TextDecoder::Numeric]
|
data/Rakefile
CHANGED
@@ -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
|
@@ -61,7 +63,7 @@ $hoespec = Hoe.spec 'pg' do
|
|
61
63
|
self.developer 'Lars Kanis', 'lars@greiz-reinsdorf.de'
|
62
64
|
|
63
65
|
self.dependency 'rake-compiler', '~> 1.0', :developer
|
64
|
-
self.dependency 'rake-compiler-dock', ['~>
|
66
|
+
self.dependency 'rake-compiler-dock', ['~> 1.0'], :developer
|
65
67
|
self.dependency 'hoe-deveiate', '~> 0.9', :developer
|
66
68
|
self.dependency 'hoe-bundler', '~> 1.0', :developer
|
67
69
|
self.dependency 'rspec', '~> 3.5', :developer
|
@@ -129,7 +131,7 @@ Rake::ExtensionTask.new do |ext|
|
|
129
131
|
|
130
132
|
# Add libpq.dll to windows binary gemspec
|
131
133
|
ext.cross_compiling do |spec|
|
132
|
-
spec.files << "lib/libpq.dll"
|
134
|
+
spec.files << "lib/#{spec.platform}/libpq.dll"
|
133
135
|
end
|
134
136
|
end
|
135
137
|
|
data/Rakefile.cross
CHANGED
@@ -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}"
|
@@ -141,9 +143,9 @@ class CrossLibrary < OpenStruct
|
|
141
143
|
end
|
142
144
|
|
143
145
|
desc "compile static openssl libraries"
|
144
|
-
task
|
146
|
+
task "openssl_libs:#{for_platform}" => [ libssl, libcrypto ]
|
145
147
|
|
146
|
-
task
|
148
|
+
task "compile_static_openssl:#{for_platform}" => openssl_makefile do |t|
|
147
149
|
chdir( static_openssl_builddir ) do
|
148
150
|
cmd = cmd_prelude.dup
|
149
151
|
cmd << 'make' << "-j#{NUM_CPUS}" << 'build_libs'
|
@@ -153,12 +155,12 @@ class CrossLibrary < OpenStruct
|
|
153
155
|
end
|
154
156
|
|
155
157
|
desc "compile static #{libssl}"
|
156
|
-
file libssl =>
|
158
|
+
file libssl => "compile_static_openssl:#{for_platform}" do |t|
|
157
159
|
rm t.name.gsub(/\.a$/, ".dll.a")
|
158
160
|
end
|
159
161
|
|
160
162
|
desc "compile static #{libcrypto}"
|
161
|
-
file libcrypto =>
|
163
|
+
file libcrypto => "compile_static_openssl:#{for_platform}" do |t|
|
162
164
|
rm t.name.gsub(/\.a$/, ".dll.a")
|
163
165
|
end
|
164
166
|
|
@@ -189,7 +191,7 @@ class CrossLibrary < OpenStruct
|
|
189
191
|
end
|
190
192
|
|
191
193
|
# generate the makefile in a clean build location
|
192
|
-
file postgresql_global_makefile => [ static_postgresql_builddir,
|
194
|
+
file postgresql_global_makefile => [ static_postgresql_builddir, "openssl_libs:#{for_platform}" ] do |t|
|
193
195
|
options = [
|
194
196
|
"--target=#{host_platform}",
|
195
197
|
"--host=#{host_platform}",
|
@@ -231,10 +233,10 @@ class CrossLibrary < OpenStruct
|
|
231
233
|
|
232
234
|
|
233
235
|
#desc 'compile libpg.a'
|
234
|
-
task
|
236
|
+
task "native:#{for_platform}" => postgresql_lib
|
235
237
|
|
236
238
|
# copy libpq.dll to lib dir
|
237
|
-
dest_libpq = "lib/#{postgresql_lib.basename}"
|
239
|
+
dest_libpq = "lib/#{for_platform}/#{postgresql_lib.basename}"
|
238
240
|
directory File.dirname(dest_libpq)
|
239
241
|
file dest_libpq => [postgresql_lib, File.dirname(dest_libpq)] do
|
240
242
|
cp postgresql_lib, dest_libpq
|
@@ -248,20 +250,15 @@ class CrossLibrary < OpenStruct
|
|
248
250
|
end
|
249
251
|
end
|
250
252
|
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
CrossLibrary.new platform, openssl_config, toolchain
|
257
|
-
end
|
258
|
-
else
|
259
|
-
$stderr.puts "Cross-compilation disabled -- rake-compiler not properly installed"
|
260
|
-
CrossLibraries = []
|
253
|
+
CrossLibraries = [
|
254
|
+
['x86-mingw32', 'mingw', 'i686-w64-mingw32'],
|
255
|
+
['x64-mingw32', 'mingw64', 'x86_64-w64-mingw32'],
|
256
|
+
].map do |platform, openssl_config, toolchain|
|
257
|
+
CrossLibrary.new platform, openssl_config, toolchain
|
261
258
|
end
|
262
259
|
|
263
260
|
desc 'cross compile pg for win32'
|
264
|
-
task :cross => [ :mingw32
|
261
|
+
task :cross => [ :mingw32 ]
|
265
262
|
|
266
263
|
task :mingw32 do
|
267
264
|
# Use Rake::ExtensionCompiler helpers to find the proper host
|
@@ -272,30 +269,32 @@ task :mingw32 do
|
|
272
269
|
end
|
273
270
|
end
|
274
271
|
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
272
|
+
task 'gem:windows:prepare' do
|
273
|
+
require 'io/console'
|
274
|
+
require 'rake_compiler_dock'
|
275
|
+
|
276
|
+
# Copy gem signing key and certs to be accessable from the docker container
|
277
|
+
mkdir_p 'build/gem'
|
278
|
+
sh "cp ~/.gem/gem-*.pem build/gem/ || true"
|
279
|
+
sh "bundle package"
|
280
|
+
begin
|
281
|
+
OpenSSL::PKey.read(File.read(File.expand_path("~/.gem/gem-private_key.pem")), ENV["GEM_PRIVATE_KEY_PASSPHRASE"] || "")
|
282
|
+
rescue OpenSSL::PKey::PKeyError
|
283
|
+
ENV["GEM_PRIVATE_KEY_PASSPHRASE"] = STDIN.getpass("Enter passphrase of gem signature key: ")
|
284
|
+
retry
|
285
|
+
end
|
284
286
|
end
|
285
287
|
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
gem install -Ng &&
|
299
|
-
rake cross native gem MAKE="make -j`nproc`"
|
300
|
-
EOT
|
288
|
+
CrossLibraries.each do |xlib|
|
289
|
+
platform = xlib.for_platform
|
290
|
+
desc "Build fat binary gem for platform #{platform}"
|
291
|
+
task "gem:windows:#{platform}" => ['ChangeLog', 'gem:windows:prepare', xlib.openssl_tarball, xlib.postgresql_tarball] do
|
292
|
+
RakeCompilerDock.sh <<-EOT, platform: platform
|
293
|
+
(cp build/gem/gem-*.pem ~/.gem/ || true) &&
|
294
|
+
bundle install --local &&
|
295
|
+
rake native:#{platform} pkg/#{$hoespec.spec.full_name}-#{platform}.gem MAKE="make -j`nproc`"
|
296
|
+
EOT
|
297
|
+
end
|
298
|
+
desc "Build the windows binary gems"
|
299
|
+
multitask 'gem:windows' => "gem:windows:#{platform}"
|
301
300
|
end
|
data/ext/pg_result.c
CHANGED
@@ -167,6 +167,11 @@ static const rb_data_type_t pgresult_type = {
|
|
167
167
|
#endif
|
168
168
|
};
|
169
169
|
|
170
|
+
/* Needed by sequel_pg gem, do not delete */
|
171
|
+
int pg_get_result_enc_idx(VALUE self)
|
172
|
+
{
|
173
|
+
return pgresult_get_this(self)->enc_idx;
|
174
|
+
}
|
170
175
|
|
171
176
|
/*
|
172
177
|
* Global functions
|
@@ -333,8 +338,7 @@ pg_result_check( VALUE self )
|
|
333
338
|
* Special care must be taken when PG::Tuple objects are used.
|
334
339
|
* In this case #clear must not be called unless all PG::Tuple objects of this result are fully materialized.
|
335
340
|
*
|
336
|
-
* If PG::Result#autoclear? is true then the result is marked as cleared
|
337
|
-
* and the underlying C struct will be cleared automatically by libpq.
|
341
|
+
* If PG::Result#autoclear? is +true+ then the result is only marked as cleared but clearing the underlying C struct will happen when the callback returns.
|
338
342
|
*
|
339
343
|
*/
|
340
344
|
VALUE
|
@@ -362,8 +366,10 @@ pgresult_cleared_p( VALUE self )
|
|
362
366
|
* call-seq:
|
363
367
|
* res.autoclear? -> boolean
|
364
368
|
*
|
365
|
-
* Returns +true+ if the underlying C struct will be cleared
|
366
|
-
*
|
369
|
+
* Returns +true+ if the underlying C struct will be cleared at the end of a callback.
|
370
|
+
* This applies only to Result objects received by the block to PG::Cinnection#set_notice_receiver .
|
371
|
+
*
|
372
|
+
* All other Result objects are automatically cleared by the GC when the object is no longer in use or manually by PG::Result#clear .
|
367
373
|
*
|
368
374
|
*/
|
369
375
|
VALUE
|
data/lib/pg.rb
CHANGED
@@ -22,7 +22,8 @@ rescue LoadError
|
|
22
22
|
end
|
23
23
|
|
24
24
|
# Temporary add this directory for DLL search, so that libpq.dll can be found.
|
25
|
-
|
25
|
+
# mingw32-platform strings differ (RUBY_PLATFORM=i386-mingw32 vs. x86-mingw32 for rubygems)
|
26
|
+
add_dll_path.call(File.join(__dir__, RUBY_PLATFORM.gsub(/^i386-/, "x86-"))) do
|
26
27
|
require "#{major_minor}/pg_ext"
|
27
28
|
end
|
28
29
|
else
|
@@ -36,7 +37,7 @@ end
|
|
36
37
|
module PG
|
37
38
|
|
38
39
|
# Library version
|
39
|
-
VERSION = '1.2.
|
40
|
+
VERSION = '1.2.2'
|
40
41
|
|
41
42
|
# VCS revision
|
42
43
|
REVISION = %q$Revision: 6f611e78845a $
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
@@ -11,9 +11,9 @@ bindir: bin
|
|
11
11
|
cert_chain:
|
12
12
|
- |
|
13
13
|
-----BEGIN CERTIFICATE-----
|
14
|
-
|
15
|
-
|
16
|
-
|
14
|
+
MIID+DCCAmCgAwIBAgIBAjANBgkqhkiG9w0BAQsFADAiMSAwHgYDVQQDDBdnZWQv
|
15
|
+
REM9RmFlcmllTVVEL0RDPW9yZzAeFw0xOTEyMjQyMDE5NTFaFw0yMDEyMjMyMDE5
|
16
|
+
NTFaMCIxIDAeBgNVBAMMF2dlZC9EQz1GYWVyaWVNVUQvREM9b3JnMIIBojANBgkq
|
17
17
|
hkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAvyVhkRzvlEs0fe7145BYLfN6njX9ih5H
|
18
18
|
L60U0p0euIurpv84op9CNKF9tx+1WKwyQvQP7qFGuZxkSUuWcP/sFhDXL1lWUuIl
|
19
19
|
M4uHbGCRmOshDrF4dgnBeOvkHr1fIhPlJm5FO+Vew8tSQmlDsosxLUx+VB7DrVFO
|
@@ -22,20 +22,19 @@ cert_chain:
|
|
22
22
|
vQ66lts4alKC69TE5cuKasWBm+16A4aEe3XdZBRNmtOu/g81gvwA7fkJHKllJuaI
|
23
23
|
dXzdHqq+zbGZVSQ7pRYHYomD0IiDe1DbIouFnPWmagaBnGHwXkDT2bKKP+s2v21m
|
24
24
|
ozilJg4aar2okb/RA6VS87o+d7g6LpDDMMQjH4G9OPnJENLdhu8KnPw/ivSVvQw7
|
25
|
-
N2I4L/ZOIe2DIVuYH7aLHfjZDQv/
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
JnC4lpJfCP6aCXa5h2XAQfPSH636cQap
|
25
|
+
N2I4L/ZOIe2DIVuYH7aLHfjZDQv/mNgpAgMBAAGjOTA3MAkGA1UdEwQCMAAwCwYD
|
26
|
+
VR0PBAQDAgSwMB0GA1UdDgQWBBRyjf55EbrHagiRLqt5YAd3yb8k4DANBgkqhkiG
|
27
|
+
9w0BAQsFAAOCAYEAifxlz7x0EfT3fjhM520ZEIrWa+tLMuLKNefkY18u8tZnx4EX
|
28
|
+
Xxwh3tna3fvNfrOrdY5leIj1dbv4FTRg+gIBnIxAySqvpGvI/Axg5EdYbwninCLL
|
29
|
+
LAKCmRo+5QwaPMYN2zdHIjGrp8jg1neCo5zy6tVvyTv0DMI6FLrydVJYduMMDFSy
|
30
|
+
gQKR1rVOcCJtnBnLCF9+kKEUKohAHOmGsE7OBZFnjMIpH5yUDUVJKByv0gIipFt0
|
31
|
+
1T6zff6oVU0w8WBiNKR381+6sF3wIZVnVY0XeJg6hNL+YecE8ILxLhHTmtT/BO0S
|
32
|
+
3xPze9uXDR+iD6HYl8KU5QEg/dXFPhfQb512vVkTJDZvMcwu6PxDUjHFChLjAji/
|
33
|
+
AZXjg1C5E9znTkeUR8ieU9F1MOKoiH57a5lYSTI8Ga8PpsNXTxNeXc16Ob26CqrJ
|
34
|
+
83uuAYSy65yXDGXXPVBeKPVnYrqp91pqpS5Nh7wfuiCrE8lgU8PATh7K4BV1UhAT
|
35
|
+
0MHbAT42wTYkfUj3
|
37
36
|
-----END CERTIFICATE-----
|
38
|
-
date:
|
37
|
+
date: 2020-01-08 00:00:00.000000000 Z
|
39
38
|
dependencies:
|
40
39
|
- !ruby/object:Gem::Dependency
|
41
40
|
name: hoe-mercurial
|
@@ -99,14 +98,14 @@ dependencies:
|
|
99
98
|
requirements:
|
100
99
|
- - "~>"
|
101
100
|
- !ruby/object:Gem::Version
|
102
|
-
version:
|
101
|
+
version: '1.0'
|
103
102
|
type: :development
|
104
103
|
prerelease: false
|
105
104
|
version_requirements: !ruby/object:Gem::Requirement
|
106
105
|
requirements:
|
107
106
|
- - "~>"
|
108
107
|
- !ruby/object:Gem::Version
|
109
|
-
version:
|
108
|
+
version: '1.0'
|
110
109
|
- !ruby/object:Gem::Dependency
|
111
110
|
name: hoe-bundler
|
112
111
|
requirement: !ruby/object:Gem::Requirement
|
metadata.gz.sig
CHANGED
Binary file
|