pg 1.3.0 → 1.4.0
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 +1 -1
- data/.github/workflows/binary-gems.yml +3 -3
- data/.github/workflows/source-gem.yml +5 -6
- data/History.rdoc +98 -1
- data/Rakefile.cross +4 -2
- data/certs/larskanis-2022.pem +26 -0
- data/ext/errorcodes.rb +0 -0
- data/ext/extconf.rb +13 -10
- data/ext/pg.h +1 -0
- data/ext/pg_connection.c +228 -212
- data/ext/pg_record_coder.c +6 -4
- data/ext/pg_result.c +16 -9
- data/ext/pg_tuple.c +2 -8
- data/ext/pg_type_map_all_strings.c +1 -0
- data/ext/pg_type_map_by_column.c +2 -0
- data/lib/pg/basic_type_registry.rb +8 -3
- data/lib/pg/connection.rb +178 -120
- data/lib/pg/exceptions.rb +7 -1
- data/lib/pg/version.rb +1 -1
- data/lib/pg.rb +9 -7
- data/misc/openssl-pg-segfault.rb +0 -0
- data/rakelib/task_extension.rb +46 -0
- 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.tar.gz.sig +0 -0
- metadata +32 -28
- 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: de283e26d9b321e332b3a0cfb7528a169c85c6842b45eed15a11dceafff0c51c
|
|
4
|
+
data.tar.gz: 32969355bf10d56fcc23611b5906c93315acd90dc718c13db77adb5358e8a2c6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9c85938f84751d4720b1419cf17cc089804f6ae64af363078267e784a04a99b04e8c5448d5ac349afb833254e8991f619fe2b3eb2492e2b91fdd446c2f42797a
|
|
7
|
+
data.tar.gz: 96777364ae066e8a06b0c0d589752f4f328fd17066b7888663f45798207a6737c68fef01fa10cba6ae7f210a7f6dd8c55210039cbd4d9b71b91a709b3a052fdd
|
checksums.yaml.gz.sig
CHANGED
|
Binary file
|
data/.appveyor.yml
CHANGED
|
@@ -45,10 +45,10 @@ jobs:
|
|
|
45
45
|
include:
|
|
46
46
|
- ruby: "3.1"
|
|
47
47
|
platform: "x64-mingw-ucrt"
|
|
48
|
-
PGVERSION: 14.
|
|
48
|
+
PGVERSION: 14.2-1-windows-x64
|
|
49
49
|
- ruby: "2.5"
|
|
50
50
|
platform: "x64-mingw32"
|
|
51
|
-
PGVERSION: 10.
|
|
51
|
+
PGVERSION: 10.20-1-windows
|
|
52
52
|
|
|
53
53
|
runs-on: windows-latest
|
|
54
54
|
env:
|
|
@@ -56,7 +56,7 @@ jobs:
|
|
|
56
56
|
steps:
|
|
57
57
|
- uses: actions/checkout@v2
|
|
58
58
|
- name: Set up Ruby
|
|
59
|
-
uses:
|
|
59
|
+
uses: ruby/setup-ruby@v1
|
|
60
60
|
with:
|
|
61
61
|
ruby-version: ${{ matrix.ruby }}
|
|
62
62
|
|
|
@@ -31,12 +31,12 @@ jobs:
|
|
|
31
31
|
include:
|
|
32
32
|
- os: windows
|
|
33
33
|
ruby: "head"
|
|
34
|
-
PGVERSION: 14.
|
|
34
|
+
PGVERSION: 14.2-1-windows-x64
|
|
35
35
|
PGVER: "14"
|
|
36
36
|
- os: windows
|
|
37
37
|
ruby: "2.5"
|
|
38
|
-
PGVERSION: 9.
|
|
39
|
-
PGVER: "9.
|
|
38
|
+
PGVERSION: 9.4.26-1-windows-x64
|
|
39
|
+
PGVER: "9.4"
|
|
40
40
|
- os: ubuntu
|
|
41
41
|
ruby: "head"
|
|
42
42
|
PGVER: "14"
|
|
@@ -54,7 +54,7 @@ jobs:
|
|
|
54
54
|
PGVER: "14"
|
|
55
55
|
- os: macos
|
|
56
56
|
ruby: "head"
|
|
57
|
-
PGVERSION: 14.
|
|
57
|
+
PGVERSION: 14.2-1-osx
|
|
58
58
|
PGVER: "14"
|
|
59
59
|
|
|
60
60
|
runs-on: ${{ matrix.os }}-latest
|
|
@@ -65,7 +65,7 @@ jobs:
|
|
|
65
65
|
steps:
|
|
66
66
|
- uses: actions/checkout@v2
|
|
67
67
|
- name: Set up Ruby
|
|
68
|
-
uses:
|
|
68
|
+
uses: ruby/setup-ruby@v1
|
|
69
69
|
with:
|
|
70
70
|
ruby-version: ${{ matrix.ruby }}
|
|
71
71
|
|
|
@@ -116,7 +116,6 @@ jobs:
|
|
|
116
116
|
- run: gem install --local *.gem --verbose
|
|
117
117
|
|
|
118
118
|
- name: Run specs
|
|
119
|
-
continue-on-error: ${{ matrix.ruby == 'truffleruby-head' }}
|
|
120
119
|
env:
|
|
121
120
|
PG_DEBUG: 0
|
|
122
121
|
run: ruby -rpg -S rspec spec/**/*_spec.rb -cfdoc
|
data/History.rdoc
CHANGED
|
@@ -1,3 +1,99 @@
|
|
|
1
|
+
== v1.4.0 [YYYY-MM-DD] Lars Kanis <lars@greiz-reinsdorf.de>
|
|
2
|
+
|
|
3
|
+
Added:
|
|
4
|
+
|
|
5
|
+
- Add PG::Connection#hostaddr, present since PostgreSQL-12. #453
|
|
6
|
+
- Add PG::Connection.conninfo_parse to wrap PQconninfoParse. #453
|
|
7
|
+
|
|
8
|
+
Bugfixes:
|
|
9
|
+
|
|
10
|
+
- Try IPv6 and IPv4 addresses, if DNS resolves to both. #452
|
|
11
|
+
- Re-add block-call semantics to PG::Connection.new accidently removed in pg-1.3.0. #454
|
|
12
|
+
- Handle client error after all data consumed in #copy_data for output. #455
|
|
13
|
+
- Avoid spurious keyword argument warning on Ruby 2.7. #456
|
|
14
|
+
- Change connection setup to respect connect_timeout parameter. #459
|
|
15
|
+
- Fix indefinite hang in case of connection error on Windows #458
|
|
16
|
+
- Set connection attribute of PG::Error in various places where it was missing. #461
|
|
17
|
+
- Fix transaction leak on early break/return. #463
|
|
18
|
+
- Update Windows fat binary gem to OpenSSL-1.1.1o and PostgreSQL-14.4.
|
|
19
|
+
|
|
20
|
+
Enhancements:
|
|
21
|
+
|
|
22
|
+
- Don't flush at each put_copy_data call, but flush at get_result. #462
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
== v1.3.5 [2022-03-31] Lars Kanis <lars@greiz-reinsdorf.de>
|
|
26
|
+
|
|
27
|
+
Bugfixes:
|
|
28
|
+
|
|
29
|
+
- Handle PGRES_COMMAND_OK in pgresult_stream_any. #447
|
|
30
|
+
Fixes usage when trying to stream the result of a procedure call that returns no results.
|
|
31
|
+
|
|
32
|
+
Enhancements:
|
|
33
|
+
|
|
34
|
+
- Rename BasicTypeRegistry#define_default_types to #register_default_types to use a more consistent terminology.
|
|
35
|
+
Keeping define_default_types for compatibility.
|
|
36
|
+
- BasicTypeRegistry: return self instead of objects by accident.
|
|
37
|
+
This allows call chaining.
|
|
38
|
+
- Add some April fun. #449
|
|
39
|
+
|
|
40
|
+
Documentation:
|
|
41
|
+
- Refine documentation of conn.socket_io and conn.connect_poll
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
== v1.3.4 [2022-03-10] Lars Kanis <lars@greiz-reinsdorf.de>
|
|
45
|
+
|
|
46
|
+
Bugfixes:
|
|
47
|
+
|
|
48
|
+
- Don't leak IO in case of connection errors. #439
|
|
49
|
+
Previously it was kept open until the PG::Connection was garbage collected.
|
|
50
|
+
- Fix a performance regession in conn.get_result noticed in single row mode. #442
|
|
51
|
+
- Fix occasional error Errno::EBADF (Bad file descriptor) while connecting. #444
|
|
52
|
+
- Fix compatibility of res.stream_each* methods with Fiber.scheduler. #446
|
|
53
|
+
- Remove FL_TEST and FL_SET, which are MRI-internal. #437
|
|
54
|
+
|
|
55
|
+
Enhancements:
|
|
56
|
+
|
|
57
|
+
- Allow pgresult_stream_any to be used by sequel_pg. #443
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
== v1.3.3 [2022-02-22] Lars Kanis <lars@greiz-reinsdorf.de>
|
|
61
|
+
|
|
62
|
+
Bugfixes:
|
|
63
|
+
|
|
64
|
+
- Fix omission of the third digit of IPv4 addresses in connection URI. #435
|
|
65
|
+
- Fix wrong permission of certs/larskanis-2022.pem in the pg-1.3.2.gem. #432
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
== v1.3.2 [2022-02-14] Lars Kanis <lars@greiz-reinsdorf.de>
|
|
69
|
+
|
|
70
|
+
Bugfixes:
|
|
71
|
+
|
|
72
|
+
- Cancel only active query after failing transaction. #430
|
|
73
|
+
This avoids an incompatibility with pgbouncer since pg-1.3.0.
|
|
74
|
+
- Fix String objects with non-applied encoding when using COPY or record decoders. #427
|
|
75
|
+
- Update Windows fat binary gem to PostgreSQL-14.2.
|
|
76
|
+
|
|
77
|
+
Enhancements:
|
|
78
|
+
|
|
79
|
+
- Improve extconf.rb checks to reduces the number of compiler calls.
|
|
80
|
+
- Add a check for PGRES_PIPELINE_SYNC, to make sure the library version and the header files are PostgreSQL-14+. #429
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
== v1.3.1 [2022-02-01] Michael Granger <ged@FaerieMUD.org>
|
|
84
|
+
|
|
85
|
+
Bugfixes:
|
|
86
|
+
|
|
87
|
+
- Fix wrong handling of socket writability on Windows introduced in #417.
|
|
88
|
+
This caused starvation in conn.put_copy_data.
|
|
89
|
+
- Fix error in PG.version_string(true). #419
|
|
90
|
+
- Fix a regression in pg 1.3.0 where Ruby 2.x busy-looping any fractional seconds for every wait. #420
|
|
91
|
+
|
|
92
|
+
Enhancements:
|
|
93
|
+
|
|
94
|
+
- Raise an error when conn.copy_data is used in nonblocking mode.
|
|
95
|
+
|
|
96
|
+
|
|
1
97
|
== v1.3.0 [2022-01-20] Michael Granger <ged@FaerieMUD.org>
|
|
2
98
|
|
|
3
99
|
Install Enhancements:
|
|
@@ -26,7 +122,7 @@ API Enhancements:
|
|
|
26
122
|
- Run Connection.ping in a second thread.
|
|
27
123
|
- Make discard_results scheduler friendly
|
|
28
124
|
- Do all socket waiting through the conn.socket_io object.
|
|
29
|
-
- Avoid PG.connect blocking while address resolution by automatically providing the +hostaddr+ parameter.
|
|
125
|
+
- Avoid PG.connect blocking while address resolution by automatically providing the +hostaddr+ parameter and resolving in Ruby instead of libpq.
|
|
30
126
|
- On Windows Fiber.scheduler support requires Ruby-3.1+.
|
|
31
127
|
It is also only partly usable since may ruby IO methods are not yet scheduler aware on Windows.
|
|
32
128
|
- Add support for pipeline mode of PostgreSQL-14. #401
|
|
@@ -65,6 +161,7 @@ Deprecated:
|
|
|
65
161
|
Removed:
|
|
66
162
|
- Remove support of ruby-2.2, 2.3 and 2.4. Minimum is ruby-2.5 now.
|
|
67
163
|
- Remove support for PostgreSQL-9.2. Minimum is PostgreSQL-9.3 now.
|
|
164
|
+
- Remove constant PG::REVISION, which was broken since pg-1.1.4.
|
|
68
165
|
|
|
69
166
|
Repository:
|
|
70
167
|
- Replace Hoe by Bundler for gem packaging
|
data/Rakefile.cross
CHANGED
|
@@ -7,6 +7,7 @@ require 'rake/clean'
|
|
|
7
7
|
require 'rake/extensiontask'
|
|
8
8
|
require 'rake/extensioncompiler'
|
|
9
9
|
require 'ostruct'
|
|
10
|
+
require_relative 'rakelib/task_extension'
|
|
10
11
|
|
|
11
12
|
MISCDIR = BASEDIR + 'misc'
|
|
12
13
|
|
|
@@ -20,6 +21,7 @@ end
|
|
|
20
21
|
|
|
21
22
|
class CrossLibrary < OpenStruct
|
|
22
23
|
include Rake::DSL
|
|
24
|
+
prepend TaskExtension
|
|
23
25
|
|
|
24
26
|
def initialize(for_platform, openssl_config, toolchain)
|
|
25
27
|
super()
|
|
@@ -29,8 +31,8 @@ class CrossLibrary < OpenStruct
|
|
|
29
31
|
self.host_platform = toolchain
|
|
30
32
|
|
|
31
33
|
# Cross-compilation constants
|
|
32
|
-
self.openssl_version = ENV['OPENSSL_VERSION'] || '1.1.
|
|
33
|
-
self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '14.
|
|
34
|
+
self.openssl_version = ENV['OPENSSL_VERSION'] || '1.1.1o'
|
|
35
|
+
self.postgresql_version = ENV['POSTGRESQL_VERSION'] || '14.4'
|
|
34
36
|
|
|
35
37
|
# Check if symlinks work in the current working directory.
|
|
36
38
|
# This fails, if rake-compiler-dock is running on a Windows box.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
|
2
|
+
MIIETTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQDDB1sYXJz
|
|
3
|
+
L0RDPWdyZWl6LXJlaW5zZG9yZi9EQz1kZTAeFw0yMjAyMTQxMzMwNTZaFw0yMzAy
|
|
4
|
+
MTQxMzMwNTZaMCgxJjAkBgNVBAMMHWxhcnMvREM9Z3JlaXotcmVpbnNkb3JmL0RD
|
|
5
|
+
PWRlMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAwum6Y1KznfpzXOT/
|
|
6
|
+
mZgJTBbxZuuZF49Fq3K0WA67YBzNlDv95qzSp7V/7Ek3NCcnT7G+2kSuhNo1FhdN
|
|
7
|
+
eSDO/moYebZNAcu3iqLsuzuULXPLuoU0GsMnVMqV9DZPh7cQHE5EBZ7hlzDBK7k/
|
|
8
|
+
8nBMvR0mHo77kIkapHc26UzVq/G0nKLfDsIHXVylto3PjzOumjG6GhmFN4r3cP6e
|
|
9
|
+
SDfl1FSeRYVpt4kmQULz/zdSaOH3AjAq7PM2Z91iGwQvoUXMANH2v89OWjQO/NHe
|
|
10
|
+
JMNDFsmHK/6Ji4Kk48Z3TyscHQnipAID5GhS1oD21/WePdj7GhmbF5gBzkV5uepd
|
|
11
|
+
eJQPgWGwrQW/Z2oPjRuJrRofzWfrMWqbOahj9uth6WSxhNexUtbjk6P8emmXOJi5
|
|
12
|
+
chQPnWX+N3Gj+jjYxqTFdwT7Mj3pv1VHa+aNUbqSPpvJeDyxRIuo9hvzDaBHb/Cg
|
|
13
|
+
9qRVcm8a96n4t7y2lrX1oookY6bkBaxWOMtWlqIprq8JZXM9AgMBAAGjgYEwfzAJ
|
|
14
|
+
BgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUOIdbSMr3VFrTCO9/cTM0
|
|
15
|
+
0exHzBcwIgYDVR0RBBswGYEXbGFyc0BncmVpei1yZWluc2RvcmYuZGUwIgYDVR0S
|
|
16
|
+
BBswGYEXbGFyc0BncmVpei1yZWluc2RvcmYuZGUwDQYJKoZIhvcNAQELBQADggGB
|
|
17
|
+
AFWP7F/y3Oq3NgrqUOnjKOeDaBa7AqNhHS+PZg+C90lnJzMgOs4KKgZYxqSQVSab
|
|
18
|
+
SCEmzIO/StkXY4NpJ4fYLrHemf/fJy1wPyu+fNdp5SEEUwEo+2toRFlzTe4u4LdS
|
|
19
|
+
QC636nPPTMt8H3xz2wf/lUIUeo2Qc95Qt2BQM465ibbG9kmA3c7Sopx6yOabYOAl
|
|
20
|
+
KPRbOSEPiWYcF9Suuz8Gdf8jxEtPlnZiwRvnYJ+IHMq3XQCJWPpMzdDMbtlgHbXE
|
|
21
|
+
vq1zOTLMSYAS0UB3uionR4yo1hLz60odwkCm7qf0o2Ci/5OjtB0a89VuyqRU2vUJ
|
|
22
|
+
QH95WBjDJ6lCCW7J0mrMPnJQSUFTmufsU6jOChvPaCeAzW1YwrsP/YKnvwueG7ip
|
|
23
|
+
VOdW6RitjtFxhS7evRL0201+KUvLz12zZWWjOcujlQs64QprxOtiv/MiisKb1Ng+
|
|
24
|
+
oL1mUdzB8KrZL4/WbG5YNX6UTtJbIOu9qEFbBAy4/jtIkJX+dlNoFwd4GXQW1YNO
|
|
25
|
+
nA==
|
|
26
|
+
-----END CERTIFICATE-----
|
data/ext/errorcodes.rb
CHANGED
|
File without changes
|
data/ext/extconf.rb
CHANGED
|
@@ -37,12 +37,12 @@ else
|
|
|
37
37
|
|
|
38
38
|
if pgconfig && pgconfig != 'ignore'
|
|
39
39
|
$stderr.puts "Using config values from %s" % [ pgconfig ]
|
|
40
|
-
incdir =
|
|
41
|
-
libdir =
|
|
40
|
+
incdir = IO.popen([pgconfig, "--includedir"], &:read).chomp
|
|
41
|
+
libdir = IO.popen([pgconfig, "--libdir"], &:read).chomp
|
|
42
42
|
dir_config 'pg', incdir, libdir
|
|
43
43
|
|
|
44
44
|
# Windows traditionally stores DLLs beside executables, not in libdir
|
|
45
|
-
dlldir = RUBY_PLATFORM=~/mingw|mswin/ ?
|
|
45
|
+
dlldir = RUBY_PLATFORM=~/mingw|mswin/ ? IO.popen([pgconfig, "--bindir"], &:read).chomp : libdir
|
|
46
46
|
|
|
47
47
|
elsif checking_for "libpq per pkg-config" do
|
|
48
48
|
_cflags, ldflags, _libs = pkg_config("libpq")
|
|
@@ -87,7 +87,7 @@ begin
|
|
|
87
87
|
have_library( 'libpq', 'PQconnectdb', ['libpq-fe.h'] ) ||
|
|
88
88
|
have_library( 'ms/libpq', 'PQconnectdb', ['libpq-fe.h'] )
|
|
89
89
|
|
|
90
|
-
rescue SystemExit
|
|
90
|
+
rescue SystemExit
|
|
91
91
|
install_text = case RUBY_PLATFORM
|
|
92
92
|
when /linux/
|
|
93
93
|
<<-EOT
|
|
@@ -138,15 +138,18 @@ if /mingw/ =~ RUBY_PLATFORM && RbConfig::MAKEFILE_CONFIG['CC'] =~ /gcc/
|
|
|
138
138
|
end
|
|
139
139
|
end
|
|
140
140
|
|
|
141
|
-
have_func 'PQconninfo' or
|
|
141
|
+
have_func 'PQconninfo', 'libpq-fe.h' or
|
|
142
142
|
abort "Your PostgreSQL is too old. Either install an older version " +
|
|
143
143
|
"of this gem or upgrade your database to at least PostgreSQL-9.3."
|
|
144
144
|
# optional headers/functions
|
|
145
|
-
have_func 'PQsslAttribute' # since PostgreSQL-9.5
|
|
146
|
-
have_func 'PQresultVerboseErrorMessage' # since PostgreSQL-9.6
|
|
147
|
-
have_func 'PQencryptPasswordConn' # since PostgreSQL-10
|
|
148
|
-
have_func 'PQresultMemorySize' # since PostgreSQL-12
|
|
149
|
-
have_func 'PQenterPipelineMode' # since PostgreSQL-14
|
|
145
|
+
have_func 'PQsslAttribute', 'libpq-fe.h' # since PostgreSQL-9.5
|
|
146
|
+
have_func 'PQresultVerboseErrorMessage', 'libpq-fe.h' # since PostgreSQL-9.6
|
|
147
|
+
have_func 'PQencryptPasswordConn', 'libpq-fe.h' # since PostgreSQL-10
|
|
148
|
+
have_func 'PQresultMemorySize', 'libpq-fe.h' # since PostgreSQL-12
|
|
149
|
+
have_func 'PQenterPipelineMode', 'libpq-fe.h' do |src| # since PostgreSQL-14
|
|
150
|
+
# Ensure header files fit as well
|
|
151
|
+
src + " int con(){ return PGRES_PIPELINE_SYNC; }"
|
|
152
|
+
end
|
|
150
153
|
have_func 'timegm'
|
|
151
154
|
have_func 'rb_gc_adjust_memory_usage' # since ruby-2.4
|
|
152
155
|
have_func 'rb_gc_mark_movable' # since ruby-2.7
|
data/ext/pg.h
CHANGED
|
@@ -344,6 +344,7 @@ void pg_typemap_compact _(( void * ));
|
|
|
344
344
|
|
|
345
345
|
PGconn *pg_get_pgconn _(( VALUE ));
|
|
346
346
|
t_pg_connection *pg_get_connection _(( VALUE ));
|
|
347
|
+
VALUE pgconn_block _(( int, VALUE *, VALUE ));
|
|
347
348
|
|
|
348
349
|
VALUE pg_new_result _(( PGresult *, VALUE ));
|
|
349
350
|
VALUE pg_new_result_autoclear _(( PGresult *, VALUE ));
|