pg 1.4.1 → 1.5.6
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 +45 -14
- data/.github/workflows/source-gem.yml +35 -23
- data/.gitignore +11 -2
- data/.travis.yml +2 -2
- data/Gemfile +3 -0
- data/{History.rdoc → History.md} +285 -140
- data/README.ja.md +300 -0
- data/README.md +286 -0
- data/Rakefile +18 -6
- data/Rakefile.cross +8 -11
- data/certs/kanis@comcard.de.pem +20 -0
- data/certs/larskanis-2023.pem +24 -0
- data/certs/larskanis-2024.pem +24 -0
- data/ext/errorcodes.def +4 -0
- data/ext/errorcodes.txt +2 -1
- data/ext/extconf.rb +4 -0
- data/ext/pg.c +15 -55
- data/ext/pg.h +11 -6
- 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 +201 -73
- data/ext/pg_copy_coder.c +307 -18
- data/ext/pg_errors.c +1 -1
- data/ext/pg_record_coder.c +6 -5
- data/ext/pg_result.c +102 -26
- data/ext/pg_text_decoder.c +28 -10
- data/ext/pg_text_encoder.c +23 -10
- data/ext/pg_tuple.c +35 -32
- 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 +19 -10
- data/lib/pg/basic_type_map_for_results.rb +26 -3
- data/lib/pg/basic_type_registry.rb +35 -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 +186 -104
- data/lib/pg/exceptions.rb +7 -0
- 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 +55 -15
- data/pg.gemspec +5 -3
- data/rakelib/task_extension.rb +1 -1
- data.tar.gz.sig +0 -0
- metadata +96 -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: dabf91eb5c0f0871f693465f33fdd345e7b5fca07ffe35a0dad65f3b851d5292
|
4
|
+
data.tar.gz: ecfb93d8f10e6835b5c7b134d2861161faa9c13ecbd0fe7e5c2cc0d5257faf2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbba19b5af6b7eeae29313fe028579c1f1c3005a4ae0244bafa7e2562279986cbbc851a089286bd40302bc8eb46b865e0b0baa7d80ee7b8797e50f12dd4f9633
|
7
|
+
data.tar.gz: 7e4a0c5fba7fb69a25297300c92f2a96599798390b77fb26c46056bb1557682c58f905006aacdf754a83880f2e01218b04ff32473be76eeb178161098a04ab39
|
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,10 +1,15 @@
|
|
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:
|
7
|
-
name:
|
12
|
+
name: Build
|
8
13
|
runs-on: ubuntu-latest
|
9
14
|
strategy:
|
10
15
|
fail-fast: false
|
@@ -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.3"
|
21
27
|
- run: bundle install
|
22
28
|
|
23
29
|
- name: Create a dummy cert to satisfy the build
|
@@ -31,37 +37,55 @@ 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
|
38
44
|
|
39
45
|
job_test_binary:
|
40
|
-
name: Test
|
46
|
+
name: Test
|
41
47
|
needs: job_build_x64
|
42
48
|
strategy:
|
43
49
|
fail-fast: false
|
44
50
|
matrix:
|
45
51
|
include:
|
46
|
-
-
|
52
|
+
- os: windows-latest
|
53
|
+
ruby: "3.3"
|
47
54
|
platform: "x64-mingw-ucrt"
|
48
|
-
PGVERSION:
|
49
|
-
-
|
55
|
+
PGVERSION: 16.0-1-windows-x64
|
56
|
+
- os: windows-latest
|
57
|
+
ruby: "3.1.4-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,29 +1,34 @@
|
|
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
|
-
name:
|
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"
|
24
29
|
|
25
30
|
job_test_gem:
|
26
|
-
name: Test
|
31
|
+
name: Test
|
27
32
|
needs: job_build_gem
|
28
33
|
strategy:
|
29
34
|
fail-fast: false
|
@@ -31,19 +36,24 @@ jobs:
|
|
31
36
|
include:
|
32
37
|
- os: windows
|
33
38
|
ruby: "head"
|
34
|
-
PGVERSION:
|
35
|
-
PGVER: "
|
39
|
+
PGVERSION: 16.0-1-windows-x64
|
40
|
+
PGVER: "16"
|
36
41
|
- os: windows
|
37
42
|
ruby: "2.5"
|
38
43
|
PGVERSION: 9.4.26-1-windows-x64
|
39
44
|
PGVER: "9.4"
|
45
|
+
- os: windows
|
46
|
+
ruby: "mswin"
|
47
|
+
PGVERSION: 16.0-1-windows-x64
|
48
|
+
PGVER: "16"
|
40
49
|
- os: ubuntu
|
41
50
|
ruby: "head"
|
42
|
-
PGVER: "
|
51
|
+
PGVER: "16"
|
43
52
|
- os: ubuntu
|
44
|
-
ruby: "3.
|
53
|
+
ruby: "3.2"
|
45
54
|
PGVER: "12"
|
46
55
|
- os: ubuntu
|
56
|
+
os_ver: "20.04"
|
47
57
|
ruby: "2.5"
|
48
58
|
PGVER: "9.3"
|
49
59
|
- os: ubuntu
|
@@ -51,31 +61,32 @@ jobs:
|
|
51
61
|
PGVER: "13"
|
52
62
|
- os: ubuntu
|
53
63
|
ruby: "truffleruby-head"
|
54
|
-
PGVER: "
|
64
|
+
PGVER: "16"
|
55
65
|
- os: macos
|
56
66
|
ruby: "head"
|
57
|
-
PGVERSION:
|
58
|
-
PGVER: "
|
67
|
+
PGVERSION: 16.0-1-osx
|
68
|
+
PGVER: "16"
|
59
69
|
|
60
|
-
runs-on: ${{ matrix.os }}
|
70
|
+
runs-on: ${{ matrix.os }}-${{ matrix.os_ver || 'latest' }}
|
61
71
|
env:
|
62
72
|
PGVERSION: ${{ matrix.PGVERSION }}
|
63
73
|
PGVER: ${{ matrix.PGVER }}
|
74
|
+
MAKE: make -j2 V=1
|
64
75
|
|
65
76
|
steps:
|
66
|
-
- uses: actions/checkout@
|
77
|
+
- uses: actions/checkout@v3
|
67
78
|
- name: Set up Ruby
|
68
79
|
uses: ruby/setup-ruby@v1
|
69
80
|
with:
|
70
81
|
ruby-version: ${{ matrix.ruby }}
|
71
82
|
|
72
83
|
- name: Download gem from build job
|
73
|
-
uses: actions/download-artifact@
|
84
|
+
uses: actions/download-artifact@v3
|
74
85
|
with:
|
75
86
|
name: source-gem
|
76
87
|
|
77
88
|
- name: Install required packages Windows
|
78
|
-
if: matrix.os == 'windows'
|
89
|
+
if: matrix.os == 'windows' && matrix.ruby != 'mswin'
|
79
90
|
shell: cmd
|
80
91
|
run: ridk exec sh -c "pacman --sync --needed --noconfirm ${MINGW_PACKAGE_PREFIX}-gcc"
|
81
92
|
|
@@ -97,20 +108,21 @@ jobs:
|
|
97
108
|
- name: Download PostgreSQL Ubuntu
|
98
109
|
if: matrix.os == 'ubuntu'
|
99
110
|
run: |
|
100
|
-
echo "deb http://apt.postgresql.org/pub/repos/apt/
|
111
|
+
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
112
|
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*
|
113
|
+
sudo apt-get -y update
|
114
|
+
sudo apt-get -y --allow-downgrades install postgresql-$PGVER libpq5=$PGVER* libpq-dev=$PGVER*
|
104
115
|
echo /usr/lib/postgresql/$PGVER/bin >> $GITHUB_PATH
|
105
116
|
|
106
117
|
- name: Download PostgreSQL Macos
|
107
118
|
if: matrix.os == 'macos'
|
108
119
|
run: |
|
109
120
|
wget https://get.enterprisedb.com/postgresql/postgresql-$PGVERSION-binaries.zip && \
|
110
|
-
|
111
|
-
|
121
|
+
sudo mkdir -p /Library/PostgreSQL && \
|
122
|
+
sudo unzip postgresql-$PGVERSION-binaries.zip -d /Library/PostgreSQL/$PGVER && \
|
123
|
+
echo /Library/PostgreSQL/$PGVER/bin >> $GITHUB_PATH
|
112
124
|
|
113
|
-
- run: gem update --system
|
125
|
+
- run: gem update --system 3.3.26
|
114
126
|
- run: bundle install
|
115
127
|
|
116
128
|
- 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:
|
data/Gemfile
CHANGED
@@ -11,4 +11,7 @@ group :development, :test do
|
|
11
11
|
gem "rake-compiler-dock", "~> 1.0"
|
12
12
|
gem "rdoc", "~> 6.4"
|
13
13
|
gem "rspec", "~> 3.5"
|
14
|
+
# "bigdecimal" is a gem on ruby-3.4+ and it's optional for ruby-pg.
|
15
|
+
# Specs should succeed without it, but 4 examples are then excluded.
|
16
|
+
# gem "bigdecimal", "~> 3.0"
|
14
17
|
end
|