pg 1.5.4 → 1.5.5
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/.github/workflows/binary-gems.yml +6 -6
- data/.github/workflows/source-gem.yml +10 -10
- data/History.md +9 -0
- data/Rakefile +4 -1
- data/Rakefile.cross +4 -3
- data/certs/kanis@comcard.de.pem +20 -0
- data/ext/errorcodes.txt +1 -1
- data/ext/pg_binary_encoder.c +1 -1
- data/ext/pg_copy_coder.c +7 -7
- data/lib/pg/version.rb +1 -1
- data/pg.gemspec +1 -1
- data.tar.gz.sig +0 -0
- metadata +4 -7
- metadata.gz.sig +0 -0
- data/translation/.po4a-version +0 -7
- data/translation/po/all.pot +0 -936
- data/translation/po/ja.po +0 -1036
- data/translation/po4a.cfg +0 -12
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: db703158261148542548847eda910c7c2a19fc2aa933e60be83f233d0e553228
|
4
|
+
data.tar.gz: b533d3a5c21262f6b5d5300dc9ee229f30309bda7251d709c513bddf95871197
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd3123db0d13a0510ae0ba12efeef97ac7dbb13290eabee01787d023310884cdd36585faa902cb58f51fc8c74f38dbc66890061e7bd188466cbb25f3004843ba
|
7
|
+
data.tar.gz: 5611bcbb7e26fd25801f18d06863c2ae9695dafa835d259640fb299a7129e43d3f7db1c98ffdb8001ca7522e859629ee09f63a0352686a36bf0dd391a43b9539
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
@@ -9,7 +9,7 @@ on:
|
|
9
9
|
|
10
10
|
jobs:
|
11
11
|
job_build_x64:
|
12
|
-
name:
|
12
|
+
name: Build
|
13
13
|
runs-on: ubuntu-latest
|
14
14
|
strategy:
|
15
15
|
fail-fast: false
|
@@ -23,7 +23,7 @@ jobs:
|
|
23
23
|
- name: Set up Ruby
|
24
24
|
uses: ruby/setup-ruby@v1
|
25
25
|
with:
|
26
|
-
ruby-version: "3.
|
26
|
+
ruby-version: "3.3"
|
27
27
|
- run: bundle install
|
28
28
|
|
29
29
|
- name: Create a dummy cert to satisfy the build
|
@@ -43,18 +43,18 @@ jobs:
|
|
43
43
|
path: pkg/*.gem
|
44
44
|
|
45
45
|
job_test_binary:
|
46
|
-
name: Test
|
46
|
+
name: Test
|
47
47
|
needs: job_build_x64
|
48
48
|
strategy:
|
49
49
|
fail-fast: false
|
50
50
|
matrix:
|
51
51
|
include:
|
52
52
|
- os: windows-latest
|
53
|
-
ruby: "3.
|
53
|
+
ruby: "3.3"
|
54
54
|
platform: "x64-mingw-ucrt"
|
55
|
-
PGVERSION:
|
55
|
+
PGVERSION: 16.0-1-windows-x64
|
56
56
|
- os: windows-latest
|
57
|
-
ruby: "3.1.
|
57
|
+
ruby: "3.1.4-1"
|
58
58
|
platform: "x86-mingw32"
|
59
59
|
PGVERSION: 10.20-1-windows
|
60
60
|
- os: windows-latest
|
@@ -9,7 +9,7 @@ on:
|
|
9
9
|
|
10
10
|
jobs:
|
11
11
|
job_build_gem:
|
12
|
-
name:
|
12
|
+
name: Build
|
13
13
|
runs-on: ubuntu-latest
|
14
14
|
steps:
|
15
15
|
- uses: actions/checkout@v3
|
@@ -28,7 +28,7 @@ jobs:
|
|
28
28
|
path: "*.gem"
|
29
29
|
|
30
30
|
job_test_gem:
|
31
|
-
name: Test
|
31
|
+
name: Test
|
32
32
|
needs: job_build_gem
|
33
33
|
strategy:
|
34
34
|
fail-fast: false
|
@@ -36,19 +36,19 @@ jobs:
|
|
36
36
|
include:
|
37
37
|
- os: windows
|
38
38
|
ruby: "head"
|
39
|
-
PGVERSION:
|
40
|
-
PGVER: "
|
39
|
+
PGVERSION: 16.0-1-windows-x64
|
40
|
+
PGVER: "16"
|
41
41
|
- os: windows
|
42
42
|
ruby: "2.5"
|
43
43
|
PGVERSION: 9.4.26-1-windows-x64
|
44
44
|
PGVER: "9.4"
|
45
45
|
- os: windows
|
46
46
|
ruby: "mswin"
|
47
|
-
PGVERSION:
|
48
|
-
PGVER: "
|
47
|
+
PGVERSION: 16.0-1-windows-x64
|
48
|
+
PGVER: "16"
|
49
49
|
- os: ubuntu
|
50
50
|
ruby: "head"
|
51
|
-
PGVER: "
|
51
|
+
PGVER: "16"
|
52
52
|
- os: ubuntu
|
53
53
|
ruby: "3.2"
|
54
54
|
PGVER: "12"
|
@@ -61,11 +61,11 @@ jobs:
|
|
61
61
|
PGVER: "13"
|
62
62
|
- os: ubuntu
|
63
63
|
ruby: "truffleruby-head"
|
64
|
-
PGVER: "
|
64
|
+
PGVER: "16"
|
65
65
|
- os: macos
|
66
66
|
ruby: "head"
|
67
|
-
PGVERSION:
|
68
|
-
PGVER: "
|
67
|
+
PGVERSION: 16.0-1-osx
|
68
|
+
PGVER: "16"
|
69
69
|
|
70
70
|
runs-on: ${{ matrix.os }}-${{ matrix.os_ver || 'latest' }}
|
71
71
|
env:
|
data/History.md
CHANGED
@@ -1,9 +1,18 @@
|
|
1
|
+
## v1.5.5 [2024-02-15] Lars Kanis <lars@greiz-reinsdorf.de>
|
2
|
+
|
3
|
+
- Explicitly retype timespec fields to int64_t to fix compatibility with 32bit arches. [#547](https://github.com/ged/ruby-pg/pull/547)
|
4
|
+
- Fix possible buffer overflows in PG::BinaryDecoder::CopyRow on 32 bit systems. [#548](https://github.com/ged/ruby-pg/pull/548)
|
5
|
+
- Add binary Windows gems for Ruby 3.3.
|
6
|
+
- Update Windows fat binary gem to OpenSSL-3.2.1 and PostgreSQL-16.2.
|
7
|
+
|
8
|
+
|
1
9
|
## v1.5.4 [2023-09-01] Lars Kanis <lars@greiz-reinsdorf.de>
|
2
10
|
|
3
11
|
- Fix compiling the pg extension with MSVC 2022. [#535](https://github.com/ged/ruby-pg/pull/535)
|
4
12
|
- Set PG::Connection's encoding even if setting client_encoding on connection startup fails. [#541](https://github.com/ged/ruby-pg/pull/541)
|
5
13
|
- Don't set the server's client_encoding if it's unnecessary. [#542](https://github.com/ged/ruby-pg/pull/542)
|
6
14
|
This is important for connection proxies, who disallow configuration settings.
|
15
|
+
- Update Windows fat binary gem to OpenSSL-3.1.2 and PostgreSQL-15.4.
|
7
16
|
|
8
17
|
|
9
18
|
## v1.5.3 [2023-04-28] Lars Kanis <lars@greiz-reinsdorf.de>
|
data/Rakefile
CHANGED
@@ -1,5 +1,8 @@
|
|
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'
|
@@ -91,7 +94,7 @@ end
|
|
91
94
|
|
92
95
|
desc "Update list of server error codes"
|
93
96
|
task :update_error_codes do
|
94
|
-
URL_ERRORCODES_TXT = "http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;f=src/backend/utils/errcodes.txt;hb=refs/tags/
|
97
|
+
URL_ERRORCODES_TXT = "http://git.postgresql.org/gitweb/?p=postgresql.git;a=blob_plain;f=src/backend/utils/errcodes.txt;hb=refs/tags/REL_16_0"
|
95
98
|
|
96
99
|
ERRORCODES_TXT = "ext/errorcodes.txt"
|
97
100
|
sh "wget #{URL_ERRORCODES_TXT.inspect} -O #{ERRORCODES_TXT.inspect} || curl #{URL_ERRORCODES_TXT.inspect} -o #{ERRORCODES_TXT.inspect}"
|
data/Rakefile.cross
CHANGED
@@ -31,8 +31,8 @@ class CrossLibrary < OpenStruct
|
|
31
31
|
self.host_platform = toolchain
|
32
32
|
|
33
33
|
# Cross-compilation constants
|
34
|
-
self.openssl_version = ENV['OPENSSL_VERSION'] || '3.1
|
35
|
-
self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '
|
34
|
+
self.openssl_version = ENV['OPENSSL_VERSION'] || '3.2.1'
|
35
|
+
self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '16.2'
|
36
36
|
|
37
37
|
# Check if symlinks work in the current working directory.
|
38
38
|
# This fails, if rake-compiler-dock is running on a Windows box.
|
@@ -184,6 +184,7 @@ class CrossLibrary < OpenStruct
|
|
184
184
|
"--host=#{host_platform}",
|
185
185
|
'--with-openssl',
|
186
186
|
'--without-zlib',
|
187
|
+
'--without-icu',
|
187
188
|
]
|
188
189
|
|
189
190
|
chdir( static_postgresql_builddir ) do
|
@@ -290,7 +291,7 @@ CrossLibraries.each do |xlib|
|
|
290
291
|
RakeCompilerDock.sh <<-EOT, platform: platform
|
291
292
|
(cp build/gem/gem-*.pem ~/.gem/ || true) &&
|
292
293
|
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
|
+
rake native:#{platform} pkg/#{$gem_spec.full_name}-#{platform}.gem MAKE="make -j`nproc`" RUBY_CC_VERSION=3.3.0:3.2.0:3.1.0:3.0.0:2.7.0:2.6.0:2.5.0
|
294
295
|
EOT
|
295
296
|
end
|
296
297
|
desc "Build the windows binary gems"
|
@@ -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-----
|
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-2023, 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
|
data/ext/pg_binary_encoder.c
CHANGED
@@ -185,7 +185,7 @@ pg_bin_enc_timestamp(t_pg_coder *this, VALUE value, char *out, VALUE *intermedia
|
|
185
185
|
ts = rb_time_timespec(*intermediate);
|
186
186
|
/* PostgreSQL's timestamp is based on year 2000 and Ruby's time is based on 1970.
|
187
187
|
* Adjust the 30 years difference. */
|
188
|
-
timestamp = (ts.tv_sec - 10957L * 24L * 3600L) * 1000000 + (ts.tv_nsec / 1000);
|
188
|
+
timestamp = ((int64_t)ts.tv_sec - 10957L * 24L * 3600L) * 1000000 + ((int64_t)ts.tv_nsec / 1000);
|
189
189
|
|
190
190
|
if( this->flags & PG_CODER_TIMESTAMP_DB_LOCAL ) {
|
191
191
|
/* send as local time */
|
data/ext/pg_copy_coder.c
CHANGED
@@ -795,26 +795,26 @@ pg_bin_dec_copy_row(t_pg_coder *conv, const char *input_line, int len, int _tupl
|
|
795
795
|
cur_ptr = input_line;
|
796
796
|
line_end_ptr = input_line + len;
|
797
797
|
|
798
|
-
if (cur_ptr
|
798
|
+
if (line_end_ptr - cur_ptr >= 11 && memcmp(cur_ptr, BinarySignature, 11) == 0){
|
799
799
|
/* binary COPY header signature detected -> just drop it */
|
800
800
|
int ext_bytes;
|
801
801
|
cur_ptr += 11;
|
802
802
|
|
803
803
|
/* read flags */
|
804
|
-
if (cur_ptr
|
804
|
+
if (line_end_ptr - cur_ptr < 4 ) goto length_error;
|
805
805
|
cur_ptr += 4;
|
806
806
|
|
807
807
|
/* read header extensions */
|
808
|
-
if (cur_ptr
|
808
|
+
if (line_end_ptr - cur_ptr < 4 ) goto length_error;
|
809
809
|
ext_bytes = read_nbo32(cur_ptr);
|
810
810
|
if (ext_bytes < 0) goto length_error;
|
811
811
|
cur_ptr += 4;
|
812
|
-
if (cur_ptr
|
812
|
+
if (line_end_ptr - cur_ptr < ext_bytes ) goto length_error;
|
813
813
|
cur_ptr += ext_bytes;
|
814
814
|
}
|
815
815
|
|
816
816
|
/* read row header */
|
817
|
-
if (cur_ptr
|
817
|
+
if (line_end_ptr - cur_ptr < 2 ) goto length_error;
|
818
818
|
nfields = read_nbo16(cur_ptr);
|
819
819
|
cur_ptr += 2;
|
820
820
|
|
@@ -830,7 +830,7 @@ pg_bin_dec_copy_row(t_pg_coder *conv, const char *input_line, int len, int _tupl
|
|
830
830
|
VALUE field_value;
|
831
831
|
|
832
832
|
/* read field size */
|
833
|
-
if (cur_ptr
|
833
|
+
if (line_end_ptr - cur_ptr < 4 ) goto length_error;
|
834
834
|
input_len = read_nbo32(cur_ptr);
|
835
835
|
cur_ptr += 4;
|
836
836
|
|
@@ -839,7 +839,7 @@ pg_bin_dec_copy_row(t_pg_coder *conv, const char *input_line, int len, int _tupl
|
|
839
839
|
/* NULL indicator */
|
840
840
|
rb_ary_push(array, Qnil);
|
841
841
|
} else {
|
842
|
-
if (cur_ptr
|
842
|
+
if (line_end_ptr - cur_ptr < input_len ) goto length_error;
|
843
843
|
|
844
844
|
/* copy input data to field_str */
|
845
845
|
PG_RB_STR_ENSURE_CAPA( field_str, input_len, output_ptr, end_capa_ptr );
|
data/lib/pg/version.rb
CHANGED
data/pg.gemspec
CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
|
|
23
23
|
# Specify which files should be added to the gem when it is released.
|
24
24
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
25
25
|
spec.files = Dir.chdir(File.expand_path(__dir__)) do
|
26
|
-
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features)/}) }
|
26
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features|translation)/}) }
|
27
27
|
end
|
28
28
|
spec.extensions = ["ext/extconf.rb"]
|
29
29
|
spec.require_paths = ["lib"]
|
data.tar.gz.sig
CHANGED
Binary file
|
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.5.
|
4
|
+
version: 1.5.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Granger
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
ciK5Du2ZDhowmWzZwNzR7VvVmfAK6RQJlRB03VkkQRWGld5yApOrYDne6WbD8kE0
|
31
31
|
uM8=
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date:
|
33
|
+
date: 2024-02-15 00:00:00.000000000 Z
|
34
34
|
dependencies: []
|
35
35
|
description: Pg is the Ruby interface to the PostgreSQL RDBMS. It works with PostgreSQL
|
36
36
|
9.3 and later.
|
@@ -123,6 +123,7 @@ files:
|
|
123
123
|
- Rakefile
|
124
124
|
- Rakefile.cross
|
125
125
|
- certs/ged.pem
|
126
|
+
- certs/kanis@comcard.de.pem
|
126
127
|
- certs/larskanis-2022.pem
|
127
128
|
- certs/larskanis-2023.pem
|
128
129
|
- ext/errorcodes.def
|
@@ -213,10 +214,6 @@ files:
|
|
213
214
|
- sample/test_binary_values.rb
|
214
215
|
- sample/wal_shipper.rb
|
215
216
|
- sample/warehouse_partitions.rb
|
216
|
-
- translation/.po4a-version
|
217
|
-
- translation/po/all.pot
|
218
|
-
- translation/po/ja.po
|
219
|
-
- translation/po4a.cfg
|
220
217
|
homepage: https://github.com/ged/ruby-pg
|
221
218
|
licenses:
|
222
219
|
- BSD-2-Clause
|
@@ -244,7 +241,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
244
241
|
- !ruby/object:Gem::Version
|
245
242
|
version: '0'
|
246
243
|
requirements: []
|
247
|
-
rubygems_version: 3.
|
244
|
+
rubygems_version: 3.6.0.dev
|
248
245
|
signing_key:
|
249
246
|
specification_version: 4
|
250
247
|
summary: Pg is the Ruby interface to the PostgreSQL RDBMS
|
metadata.gz.sig
CHANGED
Binary file
|
data/translation/.po4a-version
DELETED
@@ -1,7 +0,0 @@
|
|
1
|
-
po4a version 0.68.
|
2
|
-
Written by Martin Quinson and Denis Barbier.
|
3
|
-
|
4
|
-
Copyright © 2002-2022 Software in the Public Interest, Inc.
|
5
|
-
This is free software; see source code for copying
|
6
|
-
conditions. There is NO warranty; not even for
|
7
|
-
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|