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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e50a6829d4fe134af52d85429a3db06240fb6d228b96ef5b3fade98d38f4d199
4
- data.tar.gz: 281f5700e856a64a4a7c3157bbef4398345ac16698dbcdce54ed0408c0448457
3
+ metadata.gz: db703158261148542548847eda910c7c2a19fc2aa933e60be83f233d0e553228
4
+ data.tar.gz: b533d3a5c21262f6b5d5300dc9ee229f30309bda7251d709c513bddf95871197
5
5
  SHA512:
6
- metadata.gz: 4ca887b068f003b077c17fca5e8297368f5236ed74ae16888a64312fed269110c455e2cd58105b5a23fbb53a1841b081ae215d3a4c3473815914642fcdde75cc
7
- data.tar.gz: 86599add8d622097727be30a1a05259c69d8c83fa73e1dad0f46125e95685a752a5df24f235158ff0d62dbfe99034aa8512e89bc39f26edf81a2540c466a6541
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: build
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.2"
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 on Windows
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.2"
53
+ ruby: "3.3"
54
54
  platform: "x64-mingw-ucrt"
55
- PGVERSION: 15.1-1-windows-x64
55
+ PGVERSION: 16.0-1-windows-x64
56
56
  - os: windows-latest
57
- ruby: "3.1.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: build
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 built gem
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: 15.1-1-windows-x64
40
- PGVER: "15"
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: 15.1-1-windows-x64
48
- PGVER: "15"
47
+ PGVERSION: 16.0-1-windows-x64
48
+ PGVER: "16"
49
49
  - os: ubuntu
50
50
  ruby: "head"
51
- PGVER: "15"
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: "15"
64
+ PGVER: "16"
65
65
  - os: macos
66
66
  ruby: "head"
67
- PGVERSION: 15.1-1-osx
68
- PGVER: "15"
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/REL_15_0"
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.0'
35
- self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '15.2'
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-2022, PostgreSQL Global Development Group
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
@@ -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 + 11 <= line_end_ptr && memcmp(cur_ptr, BinarySignature, 11) == 0){
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 + 4 > line_end_ptr) goto length_error;
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 + 4 > line_end_ptr) goto length_error;
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 + ext_bytes > line_end_ptr) goto length_error;
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 + 2 > line_end_ptr) goto length_error;
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 + 4 > line_end_ptr) goto length_error;
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 + input_len > line_end_ptr) goto length_error;
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
@@ -1,4 +1,4 @@
1
1
  module PG
2
2
  # Library version
3
- VERSION = '1.5.4'
3
+ VERSION = '1.5.5'
4
4
  end
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
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: 2023-09-01 00:00:00.000000000 Z
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.4.15
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
@@ -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.