pg 1.3.3 → 1.5.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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/.appveyor.yml +15 -9
- data/.github/workflows/binary-gems.yml +43 -12
- data/.github/workflows/source-gem.yml +28 -20
- data/.gitignore +11 -2
- data/.travis.yml +2 -2
- data/{History.rdoc → History.md} +302 -115
- data/README.ja.md +276 -0
- data/README.md +286 -0
- data/Rakefile +15 -6
- data/Rakefile.cross +7 -11
- data/certs/larskanis-2023.pem +24 -0
- data/ext/errorcodes.def +4 -0
- data/ext/errorcodes.rb +0 -0
- data/ext/errorcodes.txt +2 -1
- data/ext/extconf.rb +0 -0
- data/ext/pg.c +14 -54
- data/ext/pg.h +12 -5
- data/ext/pg_binary_decoder.c +80 -1
- data/ext/pg_binary_encoder.c +225 -1
- data/ext/pg_coder.c +17 -8
- data/ext/pg_connection.c +385 -266
- data/ext/pg_copy_coder.c +307 -18
- data/ext/pg_errors.c +1 -1
- data/ext/pg_record_coder.c +12 -9
- data/ext/pg_result.c +117 -34
- data/ext/pg_text_decoder.c +28 -10
- data/ext/pg_text_encoder.c +23 -10
- data/ext/pg_tuple.c +36 -39
- data/ext/pg_type_map.c +4 -3
- data/ext/pg_type_map_all_strings.c +3 -3
- data/ext/pg_type_map_by_class.c +6 -4
- data/ext/pg_type_map_by_column.c +9 -5
- data/ext/pg_type_map_by_mri_type.c +1 -1
- data/ext/pg_type_map_by_oid.c +8 -5
- data/ext/pg_type_map_in_ruby.c +6 -3
- data/lib/pg/basic_type_map_based_on_result.rb +21 -1
- data/lib/pg/basic_type_map_for_queries.rb +13 -8
- data/lib/pg/basic_type_map_for_results.rb +26 -3
- data/lib/pg/basic_type_registry.rb +36 -33
- 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/coder.rb +15 -13
- data/lib/pg/connection.rb +269 -139
- data/lib/pg/exceptions.rb +14 -1
- data/lib/pg/text_decoder/date.rb +18 -0
- data/lib/pg/text_decoder/inet.rb +9 -0
- data/lib/pg/text_decoder/json.rb +14 -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 +12 -0
- data/lib/pg/text_encoder/inet.rb +28 -0
- data/lib/pg/text_encoder/json.rb +14 -0
- data/lib/pg/text_encoder/numeric.rb +9 -0
- data/lib/pg/text_encoder/timestamp.rb +24 -0
- data/lib/pg/version.rb +1 -1
- data/lib/pg.rb +59 -19
- data/misc/openssl-pg-segfault.rb +0 -0
- data/pg.gemspec +4 -2
- data/rakelib/task_extension.rb +1 -1
- data/sample/array_insert.rb +0 -0
- data/sample/async_api.rb +3 -7
- data/sample/async_copyto.rb +0 -0
- data/sample/async_mixed.rb +0 -0
- data/sample/check_conn.rb +0 -0
- data/sample/copydata.rb +0 -0
- data/sample/copyfrom.rb +0 -0
- data/sample/copyto.rb +0 -0
- data/sample/cursor.rb +0 -0
- data/sample/disk_usage_report.rb +0 -0
- data/sample/issue-119.rb +0 -0
- data/sample/losample.rb +0 -0
- data/sample/minimal-testcase.rb +0 -0
- data/sample/notify_wait.rb +0 -0
- data/sample/pg_statistics.rb +0 -0
- data/sample/replication_monitor.rb +0 -0
- data/sample/test_binary_values.rb +0 -0
- data/sample/wal_shipper.rb +0 -0
- data/sample/warehouse_partitions.rb +0 -0
- data/translation/.po4a-version +7 -0
- data/translation/po/all.pot +910 -0
- data/translation/po/ja.po +1047 -0
- data/translation/po4a.cfg +12 -0
- data.tar.gz.sig +0 -0
- metadata +101 -32
- metadata.gz.sig +0 -0
- data/README.ja.rdoc +0 -13
- data/README.rdoc +0 -214
- 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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7cbac60d76e50f034bb84d601d55d816cd3d3b8c05a3067b9ccd3103fc293699
|
4
|
+
data.tar.gz: e9e5d36b50bd17e8cfd3d2191a0bbc499ca09a466f9c73dc81c2799be82a3346
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b9bc096fb5410cc044f0f5fb7f688d8047fcc5c7ea8ff025bb6ada32f92288f1f6c076da157e8812aa01a47fe2b025798bafa92aab7fd1294bfcc60f03e53f09
|
7
|
+
data.tar.gz: 120f870057de3c7552e4beef0c81dd90e5ce03a4557bf3b01d518197596dfa149c7612375028451c0b07f6714567ee5e2c80040ec9470226d045e6b9fc3153eb
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/.appveyor.yml
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
image: Visual Studio
|
1
|
+
image: Visual Studio 2022
|
2
2
|
|
3
3
|
init:
|
4
4
|
- set PATH=C:/Ruby%ruby_version%/bin;c:/Program Files/Git/cmd;c:/Windows/system32;C:/Windows/System32/WindowsPowerShell/v1.0;C:/Program Files/Mercurial
|
@@ -7,8 +7,11 @@ install:
|
|
7
7
|
- ps: |
|
8
8
|
if ($env:RUBYDOWNLOAD -ne $null) {
|
9
9
|
$(new-object net.webclient).DownloadFile("https://github.com/oneclick/rubyinstaller2/releases/download/rubyinstaller-head/rubyinstaller-head-$env:RUBYDOWNLOAD.exe", "$pwd/ruby-setup.exe")
|
10
|
-
cmd /c ruby-setup.exe /verysilent /dir=C:/Ruby$env:ruby_version
|
10
|
+
cmd /c ruby-setup.exe /currentuser /verysilent /dir=C:/Ruby$env:ruby_version
|
11
11
|
}
|
12
|
+
- cmd: |
|
13
|
+
ridk enable
|
14
|
+
c:/msys64/usr/bin/bash -lc "pacman -S --noconfirm --needed ${MINGW_PACKAGE_PREFIX}-pkgconf ${MINGW_PACKAGE_PREFIX}-libyaml ${MINGW_PACKAGE_PREFIX}-gcc"
|
12
15
|
- ruby --version
|
13
16
|
- gem --version
|
14
17
|
- gem install bundler --conservative
|
@@ -18,19 +21,22 @@ install:
|
|
18
21
|
{
|
19
22
|
$(new-object net.webclient).DownloadFile('http://get.enterprisedb.com/postgresql/postgresql-' + $env:PGVERSION + '.exe', 'C:/postgresql-setup.exe')
|
20
23
|
cmd /c "C:/postgresql-setup.exe" --mode unattended --extract-only 1
|
24
|
+
|
25
|
+
$env:PATH = 'C:/Program Files/PostgreSQL/' + $env:PGVER + '/bin;' + $env:PATH
|
26
|
+
$env:PATH = 'C:/Program Files (x86)/PostgreSQL/' + $env:PGVER + '/bin;' + $env:PATH
|
27
|
+
} else {
|
28
|
+
c:/msys64/usr/bin/bash -lc "pacman -S --noconfirm --needed `${MINGW_PACKAGE_PREFIX}-postgresql"
|
21
29
|
}
|
22
|
-
|
23
|
-
|
30
|
+
- echo %PATH%
|
31
|
+
- pg_config
|
24
32
|
build_script:
|
25
33
|
- bundle exec rake -rdevkit compile --trace
|
26
34
|
test_script:
|
27
35
|
- bundle exec rake test PG_DEBUG=0
|
36
|
+
on_failure:
|
37
|
+
- find -name mkmf.log | xargs cat
|
28
38
|
environment:
|
29
39
|
matrix:
|
30
40
|
- ruby_version: "head"
|
31
41
|
RUBYDOWNLOAD: x86
|
32
|
-
|
33
|
-
PGVER: 10
|
34
|
-
- ruby_version: "25"
|
35
|
-
PGVERSION: 9.3.25-1-windows
|
36
|
-
PGVER: 9.3
|
42
|
+
- ruby_version: "30-x64"
|
@@ -1,6 +1,11 @@
|
|
1
1
|
name: Binary gems
|
2
2
|
|
3
|
-
on:
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
workflow_dispatch:
|
7
|
+
schedule:
|
8
|
+
- cron: "0 5 * * 3" # At 05:00 on Wednesday # https://crontab.guru/#0_5_*_*_3
|
4
9
|
|
5
10
|
jobs:
|
6
11
|
job_build_x64:
|
@@ -12,12 +17,13 @@ jobs:
|
|
12
17
|
include:
|
13
18
|
- platform: "x64-mingw-ucrt"
|
14
19
|
- platform: "x64-mingw32"
|
20
|
+
- platform: "x86-mingw32"
|
15
21
|
steps:
|
16
|
-
- uses: actions/checkout@
|
22
|
+
- uses: actions/checkout@v3
|
17
23
|
- name: Set up Ruby
|
18
24
|
uses: ruby/setup-ruby@v1
|
19
25
|
with:
|
20
|
-
ruby-version: "3.
|
26
|
+
ruby-version: "3.2"
|
21
27
|
- run: bundle install
|
22
28
|
|
23
29
|
- name: Create a dummy cert to satisfy the build
|
@@ -31,7 +37,7 @@ jobs:
|
|
31
37
|
run: bundle exec rake gem:windows:${{ matrix.platform }}
|
32
38
|
|
33
39
|
- name: Upload binary gem
|
34
|
-
uses: actions/upload-artifact@
|
40
|
+
uses: actions/upload-artifact@v3
|
35
41
|
with:
|
36
42
|
name: binary-gem
|
37
43
|
path: pkg/*.gem
|
@@ -43,25 +49,43 @@ jobs:
|
|
43
49
|
fail-fast: false
|
44
50
|
matrix:
|
45
51
|
include:
|
46
|
-
-
|
52
|
+
- os: windows-latest
|
53
|
+
ruby: "3.2"
|
47
54
|
platform: "x64-mingw-ucrt"
|
48
|
-
PGVERSION:
|
49
|
-
-
|
55
|
+
PGVERSION: 15.1-1-windows-x64
|
56
|
+
- os: windows-latest
|
57
|
+
ruby: "3.1.3-1"
|
58
|
+
platform: "x86-mingw32"
|
59
|
+
PGVERSION: 10.20-1-windows
|
60
|
+
- os: windows-latest
|
61
|
+
ruby: "2.5"
|
50
62
|
platform: "x64-mingw32"
|
51
63
|
PGVERSION: 10.20-1-windows
|
52
64
|
|
53
|
-
runs-on:
|
65
|
+
runs-on: ${{ matrix.os }}
|
54
66
|
env:
|
55
67
|
PGVERSION: ${{ matrix.PGVERSION }}
|
56
68
|
steps:
|
57
|
-
- uses: actions/checkout@
|
69
|
+
- uses: actions/checkout@v3
|
58
70
|
- name: Set up Ruby
|
71
|
+
if: matrix.platform != 'x86-mingw32'
|
59
72
|
uses: ruby/setup-ruby@v1
|
60
73
|
with:
|
61
74
|
ruby-version: ${{ matrix.ruby }}
|
62
75
|
|
76
|
+
- name: Set up 32 bit x86 Ruby
|
77
|
+
if: matrix.platform == 'x86-mingw32'
|
78
|
+
run: |
|
79
|
+
$(new-object net.webclient).DownloadFile("https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-${{ matrix.ruby }}/rubyinstaller-${{ matrix.ruby }}-x86.exe", "$pwd/ruby-setup.exe")
|
80
|
+
cmd /c ruby-setup.exe /currentuser /verysilent /dir=C:/Ruby-${{ matrix.ruby }}
|
81
|
+
echo "c:/ruby-${{ matrix.ruby }}/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
82
|
+
|
83
|
+
c:/ruby-${{ matrix.ruby }}/bin/ridk enable
|
84
|
+
c:/msys64/usr/bin/bash -lc "pacman -S --noconfirm --needed make `${MINGW_PACKAGE_PREFIX}-pkgconf `${MINGW_PACKAGE_PREFIX}-libyaml `${MINGW_PACKAGE_PREFIX}-gcc `${MINGW_PACKAGE_PREFIX}-make"
|
85
|
+
echo "C:/msys64/$env:MSYSTEM_PREFIX/bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
86
|
+
|
63
87
|
- name: Download gem from build job
|
64
|
-
uses: actions/download-artifact@
|
88
|
+
uses: actions/download-artifact@v3
|
65
89
|
with:
|
66
90
|
name: binary-gem
|
67
91
|
|
@@ -79,8 +103,15 @@ jobs:
|
|
79
103
|
echo "PGUSER=$env:USERNAME" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
80
104
|
echo "PGPASSWORD=" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
81
105
|
|
82
|
-
- run:
|
106
|
+
- run: echo $env:PATH
|
107
|
+
- run: gem update --system 3.3.26
|
83
108
|
- run: bundle install
|
84
109
|
- run: gem install --local pg-*${{ matrix.platform }}.gem --verbose
|
85
110
|
- name: Run specs
|
86
|
-
run: ruby -rpg -S rspec spec/**/*_spec.rb
|
111
|
+
run: ruby -rpg -S rspec -fd spec/**/*_spec.rb
|
112
|
+
|
113
|
+
- name: Print logs if job failed
|
114
|
+
if: ${{ failure() && matrix.os == 'windows-latest' }}
|
115
|
+
run: |
|
116
|
+
ridk enable
|
117
|
+
find "$(ruby -e"puts RbConfig::CONFIG[%q[libdir]]")" -name mkmf.log -print0 | xargs -0 cat
|
@@ -1,23 +1,28 @@
|
|
1
1
|
name: Source gem
|
2
2
|
|
3
|
-
on:
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
pull_request:
|
6
|
+
workflow_dispatch:
|
7
|
+
schedule:
|
8
|
+
- cron: "0 5 * * 3" # At 05:00 on Wednesday # https://crontab.guru/#0_5_*_*_3
|
4
9
|
|
5
10
|
jobs:
|
6
11
|
job_build_gem:
|
7
12
|
name: build
|
8
13
|
runs-on: ubuntu-latest
|
9
14
|
steps:
|
10
|
-
- uses: actions/checkout@
|
15
|
+
- uses: actions/checkout@v3
|
11
16
|
- name: Set up Ruby
|
12
17
|
uses: ruby/setup-ruby@v1
|
13
18
|
with:
|
14
|
-
ruby-version: "3.
|
19
|
+
ruby-version: "3.2"
|
15
20
|
|
16
21
|
- name: Build source gem
|
17
22
|
run: gem build pg.gemspec
|
18
23
|
|
19
24
|
- name: Upload source gem
|
20
|
-
uses: actions/upload-artifact@
|
25
|
+
uses: actions/upload-artifact@v3
|
21
26
|
with:
|
22
27
|
name: source-gem
|
23
28
|
path: "*.gem"
|
@@ -31,19 +36,20 @@ jobs:
|
|
31
36
|
include:
|
32
37
|
- os: windows
|
33
38
|
ruby: "head"
|
34
|
-
PGVERSION:
|
35
|
-
PGVER: "
|
39
|
+
PGVERSION: 15.1-1-windows-x64
|
40
|
+
PGVER: "15"
|
36
41
|
- os: windows
|
37
42
|
ruby: "2.5"
|
38
43
|
PGVERSION: 9.4.26-1-windows-x64
|
39
44
|
PGVER: "9.4"
|
40
45
|
- os: ubuntu
|
41
46
|
ruby: "head"
|
42
|
-
PGVER: "
|
47
|
+
PGVER: "15"
|
43
48
|
- os: ubuntu
|
44
|
-
ruby: "3.
|
49
|
+
ruby: "3.2"
|
45
50
|
PGVER: "12"
|
46
51
|
- os: ubuntu
|
52
|
+
os_ver: "20.04"
|
47
53
|
ruby: "2.5"
|
48
54
|
PGVER: "9.3"
|
49
55
|
- os: ubuntu
|
@@ -51,26 +57,27 @@ jobs:
|
|
51
57
|
PGVER: "13"
|
52
58
|
- os: ubuntu
|
53
59
|
ruby: "truffleruby-head"
|
54
|
-
PGVER: "
|
60
|
+
PGVER: "15"
|
55
61
|
- os: macos
|
56
62
|
ruby: "head"
|
57
|
-
PGVERSION:
|
58
|
-
PGVER: "
|
63
|
+
PGVERSION: 15.1-1-osx
|
64
|
+
PGVER: "15"
|
59
65
|
|
60
|
-
runs-on: ${{ matrix.os }}
|
66
|
+
runs-on: ${{ matrix.os }}-${{ matrix.os_ver || 'latest' }}
|
61
67
|
env:
|
62
68
|
PGVERSION: ${{ matrix.PGVERSION }}
|
63
69
|
PGVER: ${{ matrix.PGVER }}
|
70
|
+
MAKE: make -j2 V=1
|
64
71
|
|
65
72
|
steps:
|
66
|
-
- uses: actions/checkout@
|
73
|
+
- uses: actions/checkout@v3
|
67
74
|
- name: Set up Ruby
|
68
75
|
uses: ruby/setup-ruby@v1
|
69
76
|
with:
|
70
77
|
ruby-version: ${{ matrix.ruby }}
|
71
78
|
|
72
79
|
- name: Download gem from build job
|
73
|
-
uses: actions/download-artifact@
|
80
|
+
uses: actions/download-artifact@v3
|
74
81
|
with:
|
75
82
|
name: source-gem
|
76
83
|
|
@@ -97,20 +104,21 @@ jobs:
|
|
97
104
|
- name: Download PostgreSQL Ubuntu
|
98
105
|
if: matrix.os == 'ubuntu'
|
99
106
|
run: |
|
100
|
-
echo "deb http://apt.postgresql.org/pub/repos/apt/
|
107
|
+
echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main $PGVER" | sudo tee -a /etc/apt/sources.list.d/pgdg.list
|
101
108
|
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
102
|
-
sudo apt -y update
|
103
|
-
sudo apt -y --allow-downgrades install postgresql-$PGVER libpq5=$PGVER* libpq-dev=$PGVER*
|
109
|
+
sudo apt-get -y update
|
110
|
+
sudo apt-get -y --allow-downgrades install postgresql-$PGVER libpq5=$PGVER* libpq-dev=$PGVER*
|
104
111
|
echo /usr/lib/postgresql/$PGVER/bin >> $GITHUB_PATH
|
105
112
|
|
106
113
|
- name: Download PostgreSQL Macos
|
107
114
|
if: matrix.os == 'macos'
|
108
115
|
run: |
|
109
116
|
wget https://get.enterprisedb.com/postgresql/postgresql-$PGVERSION-binaries.zip && \
|
110
|
-
|
111
|
-
|
117
|
+
sudo mkdir -p /Library/PostgreSQL && \
|
118
|
+
sudo unzip postgresql-$PGVERSION-binaries.zip -d /Library/PostgreSQL/$PGVER && \
|
119
|
+
echo /Library/PostgreSQL/$PGVER/bin >> $GITHUB_PATH
|
112
120
|
|
113
|
-
- run: gem update --system
|
121
|
+
- run: gem update --system 3.3.26
|
114
122
|
- run: bundle install
|
115
123
|
|
116
124
|
- run: gem install --local *.gem --verbose
|
data/.gitignore
CHANGED
@@ -1,13 +1,22 @@
|
|
1
1
|
*.lock
|
2
|
+
*.orig
|
3
|
+
*_BACKUP_*
|
4
|
+
*_BASE_*
|
5
|
+
*_LOCAL_*
|
6
|
+
*_REMOTE_*
|
2
7
|
/.test_symlink
|
3
8
|
/build/
|
9
|
+
/ext/Makefile
|
10
|
+
/ext/mkmf.log
|
11
|
+
/ext/postgresql_lib_path.rb
|
4
12
|
/doc/
|
5
13
|
/lib/*.bundle
|
6
14
|
/lib/*.so
|
7
|
-
/lib/2
|
15
|
+
/lib/2.?/
|
16
|
+
/lib/3.?/
|
8
17
|
/pkg/
|
9
18
|
/tmp/
|
10
|
-
/
|
19
|
+
/tmp_test_*/
|
11
20
|
/vendor/
|
12
21
|
/lib/libpq.dll
|
13
22
|
/lib/pg/postgresql_lib_path.rb
|
data/.travis.yml
CHANGED
@@ -38,8 +38,8 @@ before_install:
|
|
38
38
|
# Download and install postgresql version to test against in /opt (for non-cross compile only)
|
39
39
|
- echo "deb http://apt.postgresql.org/pub/repos/apt/ ${TRAVIS_DIST}-pgdg main $PGVERSION" | sudo tee -a /etc/apt/sources.list.d/pgdg.list
|
40
40
|
- wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
41
|
-
- sudo apt -y update
|
42
|
-
- sudo apt -y --allow-downgrades install postgresql-$PGVERSION libpq5=$PGVERSION* libpq-dev=$PGVERSION*
|
41
|
+
- sudo apt-get -y update
|
42
|
+
- sudo apt-get -y --allow-downgrades install postgresql-$PGVERSION libpq5=$PGVERSION* libpq-dev=$PGVERSION*
|
43
43
|
- export PATH=/usr/lib/postgresql/$PGVERSION/bin:$PATH
|
44
44
|
|
45
45
|
script:
|