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
data/{History.rdoc → History.md}
RENAMED
@@ -1,40 +1,185 @@
|
|
1
|
-
|
1
|
+
## v1.5.6 [2024-03-01] Lars Kanis <lars@greiz-reinsdorf.de>
|
2
|
+
|
3
|
+
- Renew address resolution (DNS) in conn.reset. [#558](https://github.com/ged/ruby-pg/pull/558)
|
4
|
+
This is important, if DNS is used for load balancing, etc.
|
5
|
+
- Make bigdecimal an optional dependency. [#556](https://github.com/ged/ruby-pg/pull/556)
|
6
|
+
It's a gem in ruby-3.4+, so that users shouldn't be forced to use it.
|
7
|
+
|
8
|
+
|
9
|
+
## v1.5.5 [2024-02-15] Lars Kanis <lars@greiz-reinsdorf.de>
|
10
|
+
|
11
|
+
- Explicitly retype timespec fields to int64_t to fix compatibility with 32bit arches. [#547](https://github.com/ged/ruby-pg/pull/547)
|
12
|
+
- Fix possible buffer overflows in PG::BinaryDecoder::CopyRow on 32 bit systems. [#548](https://github.com/ged/ruby-pg/pull/548)
|
13
|
+
- Add binary Windows gems for Ruby 3.3.
|
14
|
+
- Update Windows fat binary gem to OpenSSL-3.2.1 and PostgreSQL-16.2.
|
15
|
+
|
16
|
+
|
17
|
+
## v1.5.4 [2023-09-01] Lars Kanis <lars@greiz-reinsdorf.de>
|
18
|
+
|
19
|
+
- Fix compiling the pg extension with MSVC 2022. [#535](https://github.com/ged/ruby-pg/pull/535)
|
20
|
+
- Set PG::Connection's encoding even if setting client_encoding on connection startup fails. [#541](https://github.com/ged/ruby-pg/pull/541)
|
21
|
+
- Don't set the server's client_encoding if it's unnecessary. [#542](https://github.com/ged/ruby-pg/pull/542)
|
22
|
+
This is important for connection proxies, who disallow configuration settings.
|
23
|
+
- Update Windows fat binary gem to OpenSSL-3.1.2 and PostgreSQL-15.4.
|
24
|
+
|
25
|
+
|
26
|
+
## v1.5.3 [2023-04-28] Lars Kanis <lars@greiz-reinsdorf.de>
|
27
|
+
|
28
|
+
- Fix possible segfault when creating a new PG::Result with type map. [#530](https://github.com/ged/ruby-pg/pull/530)
|
29
|
+
- Add category to deprecation warnings of Coder.new, so that they are suppressed for most users. [#528](https://github.com/ged/ruby-pg/pull/528)
|
30
|
+
|
31
|
+
|
32
|
+
## v1.5.2 [2023-04-26] Lars Kanis <lars@greiz-reinsdorf.de>
|
33
|
+
|
34
|
+
- Fix regression in copy_data regarding binary format when using no coder. [#527](https://github.com/ged/ruby-pg/pull/527)
|
35
|
+
|
36
|
+
|
37
|
+
## v1.5.1 [2023-04-24] Lars Kanis <lars@greiz-reinsdorf.de>
|
38
|
+
|
39
|
+
- Don't overwrite flags of timestamp coders. [#524](https://github.com/ged/ruby-pg/pull/524)
|
40
|
+
Fixes a regression in rails: https://github.com/rails/rails/issues/48049
|
41
|
+
|
42
|
+
|
43
|
+
## v1.5.0 [2023-04-24] Lars Kanis <lars@greiz-reinsdorf.de>
|
44
|
+
|
45
|
+
Enhancements:
|
46
|
+
|
47
|
+
- Better support for binary format:
|
48
|
+
- Extend PG::Connection#copy_data to better support binary transfers [#511](https://github.com/ged/ruby-pg/pull/511)
|
49
|
+
- Add binary COPY encoder and decoder:
|
50
|
+
* PG::BinaryEncoder::CopyRow
|
51
|
+
* PG::BinaryDecoder::CopyRow
|
52
|
+
- Add binary timestamp encoders:
|
53
|
+
* PG::BinaryEncoder::TimestampUtc
|
54
|
+
* PG::BinaryEncoder::TimestampLocal
|
55
|
+
* PG::BinaryEncoder::Timestamp
|
56
|
+
- Add PG::BinaryEncoder::Float4 and Float8
|
57
|
+
- Add binary date type: [#515](https://github.com/ged/ruby-pg/pull/515)
|
58
|
+
* PG::BinaryEncoder::Date
|
59
|
+
* PG::BinaryDecoder::Date
|
60
|
+
- Add PG::Result#binary_tuples [#511](https://github.com/ged/ruby-pg/pull/511)
|
61
|
+
It is useful for COPY and not deprecated in that context.
|
62
|
+
- Add PG::TextEncoder::Bytea to BasicTypeRegistry [#506](https://github.com/ged/ruby-pg/pull/506)
|
63
|
+
- Ractor support: [#519](https://github.com/ged/ruby-pg/pull/519)
|
64
|
+
- Pg is now fully compatible with Ractor introduced in Ruby-3.0 and doesn't use any global mutable state.
|
65
|
+
- All type en/decoders and type maps are shareable between ractors if they are made frozen by `Ractor.make_shareable`.
|
66
|
+
- Also frozen PG::Result and PG::Tuple objects can be shared.
|
67
|
+
- All frozen objects (except PG::Connection) can still be used to do communication with the PostgreSQL server or to read retrieved data.
|
68
|
+
- PG::Connection is not shareable and must be created within each Ractor to establish a dedicated connection.
|
69
|
+
- Use keyword arguments instead of hashes for Coder initialization and #to_h. [#511](https://github.com/ged/ruby-pg/pull/511)
|
70
|
+
- Add PG::Result.res_status as a class method and extend Result#res_status to return the status of self. [#508](https://github.com/ged/ruby-pg/pull/508)
|
71
|
+
- Reduce the number of files loaded at `require 'pg'` by using autoload. [#513](https://github.com/ged/ruby-pg/pull/513)
|
72
|
+
Previously stdlib libraries `date`, `json`, `ipaddr` and `bigdecimal` were static dependencies, but now only `socket` is mandatory.
|
73
|
+
- Improve garbage collector performance by adding write barriers to all PG classes. [#518](https://github.com/ged/ruby-pg/pull/518)
|
74
|
+
Now they can be promoted to the old generation, which means they only get marked on major GC.
|
75
|
+
- New method PG::Connection#check_socket to check the socket state. [#521](https://github.com/ged/ruby-pg/pull/521)
|
76
|
+
- Mark many internal constants as private. [#522](https://github.com/ged/ruby-pg/pull/522)
|
77
|
+
- Update Windows fat binary gem to OpenSSL-3.1.0.
|
78
|
+
|
79
|
+
Bugfixes:
|
80
|
+
|
81
|
+
- Move nfields-check of stream-methods after result status check [#507](https://github.com/ged/ruby-pg/pull/507)
|
82
|
+
This ensures that the nfield-check doesn't hide errors like statement timeout.
|
83
|
+
|
84
|
+
Removed:
|
85
|
+
|
86
|
+
- Remove deprecated PG::BasicTypeRegistry.register_type and co. [Part of #519](https://github.com/ged/ruby-pg/commit/2919ee1a0c6b216e18e1d06c95c2616ef69d2f97)
|
87
|
+
- Add deprecation warning about PG::Coder initialization per Hash argument. [#514](https://github.com/ged/ruby-pg/pull/514)
|
88
|
+
It is recommended to use keyword arguments instead.
|
89
|
+
- The internal encoding cache was removed. [#516](https://github.com/ged/ruby-pg/pull/516)
|
90
|
+
It shouldn't have a practical performance impact.
|
91
|
+
|
92
|
+
Repository:
|
93
|
+
|
94
|
+
- `rake test` tries to find PostgreSQL server commands by pg_config [#503](https://github.com/ged/ruby-pg/pull/503)
|
95
|
+
So there's no need to set the PATH manuelly any longer.
|
96
|
+
|
97
|
+
|
98
|
+
## v1.4.6 [2023-02-26] Lars Kanis <lars@greiz-reinsdorf.de>
|
99
|
+
|
100
|
+
- Add japanese README file. [#502](https://github.com/ged/ruby-pg/pull/502)
|
101
|
+
- Improve `discard_results` to not block under memory pressure. [#500](https://github.com/ged/ruby-pg/pull/500)
|
102
|
+
- Use a dedicated error class `PG::LostCopyState` for errors due to another query within `copy_data` and mention that it's probably due to another query.
|
103
|
+
Previously the "no COPY in progress" `PG::Error` was less specific. [#499](https://github.com/ged/ruby-pg/pull/499)
|
104
|
+
- Make sure an error in `put_copy_end` of `copy_data` doesn't lose the original exception.
|
105
|
+
- Disable nonblocking mode while large object calls. [#498](https://github.com/ged/ruby-pg/pull/498)
|
106
|
+
Since pg-1.3.0 libpq's "lo_*" calls failed when a bigger amount of data was transferred.
|
107
|
+
This specifically forced the `active_storage-postgresql` gem to use pg-1.2.3.
|
108
|
+
- Add rdoc options to gemspec, so that "gem install" generates complete offline documentation.
|
109
|
+
- Add binary Windows gems for Ruby 3.2.
|
110
|
+
- Update Windows fat binary gem to PostgreSQL-15.2 and OpenSSL-3.0.8.
|
111
|
+
|
112
|
+
|
113
|
+
## v1.4.5 [2022-11-17] Lars Kanis <lars@greiz-reinsdorf.de>
|
114
|
+
|
115
|
+
- Return the libpq default port when blank in conninfo. [#492](https://github.com/ged/ruby-pg/pull/492)
|
116
|
+
- Add PG::DEF_PGPORT constant and use it in specs. [#492](https://github.com/ged/ruby-pg/pull/492)
|
117
|
+
- Fix name resolution when empty or `nil` port is given.
|
118
|
+
- Update error codes to PostgreSQL-15.
|
119
|
+
- Update Windows fat binary gem to PostgreSQL-15.1 AND OpenSSL-1.1.1s.
|
120
|
+
|
121
|
+
|
122
|
+
## v1.4.4 [2022-10-11] Lars Kanis <lars@greiz-reinsdorf.de>
|
123
|
+
|
124
|
+
- Revert to let libpq do the host iteration while connecting. [#485](https://github.com/ged/ruby-pg/pull/485)
|
125
|
+
Ensure that parameter `connect_timeout` is still respected.
|
126
|
+
- Handle multiple hosts in the connection string, where only one host has writable session. [#476](https://github.com/ged/ruby-pg/pull/476)
|
127
|
+
- Add some useful information to PG::Connection#inspect. [#487](https://github.com/ged/ruby-pg/pull/487)
|
128
|
+
- Support new pgresult_stream_any API in sequel_pg-1.17.0. [#481](https://github.com/ged/ruby-pg/pull/481)
|
129
|
+
- Update Windows fat binary gem to PostgreSQL-14.5.
|
130
|
+
|
131
|
+
|
132
|
+
## v1.4.3 [2022-08-09] Lars Kanis <lars@greiz-reinsdorf.de>
|
133
|
+
|
134
|
+
- Avoid memory bloat possible in put_copy_data in pg-1.4.0 to 1.4.2. [#473](https://github.com/ged/ruby-pg/pull/473)
|
135
|
+
- Use Encoding::BINARY for JOHAB, removing some useless code. [#472](https://github.com/ged/ruby-pg/pull/472)
|
136
|
+
|
137
|
+
|
138
|
+
## v1.4.2 [2022-07-27] Lars Kanis <lars@greiz-reinsdorf.de>
|
139
|
+
|
140
|
+
Bugfixes:
|
141
|
+
|
142
|
+
- Properly handle empty host parameter when connecting. [#471](https://github.com/ged/ruby-pg/pull/471)
|
143
|
+
- Update Windows fat binary gem to OpenSSL-1.1.1q.
|
144
|
+
|
145
|
+
|
146
|
+
## v1.4.1 [2022-06-24] Lars Kanis <lars@greiz-reinsdorf.de>
|
2
147
|
|
3
148
|
Bugfixes:
|
4
149
|
|
5
|
-
- Fix another ruby-2.7 keyword warning. #465
|
6
|
-
- Allow PG::Error to be created without arguments. #466
|
150
|
+
- Fix another ruby-2.7 keyword warning. [#465](https://github.com/ged/ruby-pg/pull/465)
|
151
|
+
- Allow PG::Error to be created without arguments. [#466](https://github.com/ged/ruby-pg/pull/466)
|
7
152
|
|
8
153
|
|
9
|
-
|
154
|
+
## v1.4.0 [2022-06-20] Lars Kanis <lars@greiz-reinsdorf.de>
|
10
155
|
|
11
156
|
Added:
|
12
157
|
|
13
|
-
- Add PG::Connection#hostaddr, present since PostgreSQL-12. #453
|
14
|
-
- Add PG::Connection.conninfo_parse to wrap PQconninfoParse. #453
|
158
|
+
- Add PG::Connection#hostaddr, present since PostgreSQL-12. [#453](https://github.com/ged/ruby-pg/pull/453)
|
159
|
+
- Add PG::Connection.conninfo_parse to wrap PQconninfoParse. [#453](https://github.com/ged/ruby-pg/pull/453)
|
15
160
|
|
16
161
|
Bugfixes:
|
17
162
|
|
18
|
-
- Try IPv6 and IPv4 addresses, if DNS resolves to both. #452
|
19
|
-
- Re-add block-call semantics to PG::Connection.new accidently removed in pg-1.3.0. #454
|
20
|
-
- Handle client error after all data consumed in #copy_data for output. #455
|
21
|
-
- Avoid spurious keyword argument warning on Ruby 2.7. #456
|
22
|
-
- Change connection setup to respect connect_timeout parameter. #459
|
23
|
-
- Fix indefinite hang in case of connection error on Windows #458
|
24
|
-
- Set connection attribute of PG::Error in various places where it was missing. #461
|
25
|
-
- Fix transaction leak on early break/return. #463
|
163
|
+
- Try IPv6 and IPv4 addresses, if DNS resolves to both. [#452](https://github.com/ged/ruby-pg/pull/452)
|
164
|
+
- Re-add block-call semantics to PG::Connection.new accidently removed in pg-1.3.0. [#454](https://github.com/ged/ruby-pg/pull/454)
|
165
|
+
- Handle client error after all data consumed in #copy_data for output. [#455](https://github.com/ged/ruby-pg/pull/455)
|
166
|
+
- Avoid spurious keyword argument warning on Ruby 2.7. [#456](https://github.com/ged/ruby-pg/pull/456)
|
167
|
+
- Change connection setup to respect connect_timeout parameter. [#459](https://github.com/ged/ruby-pg/pull/459)
|
168
|
+
- Fix indefinite hang in case of connection error on Windows [#458](https://github.com/ged/ruby-pg/pull/458)
|
169
|
+
- Set connection attribute of PG::Error in various places where it was missing. [#461](https://github.com/ged/ruby-pg/pull/461)
|
170
|
+
- Fix transaction leak on early break/return. [#463](https://github.com/ged/ruby-pg/pull/463)
|
26
171
|
- Update Windows fat binary gem to OpenSSL-1.1.1o and PostgreSQL-14.4.
|
27
172
|
|
28
173
|
Enhancements:
|
29
174
|
|
30
|
-
- Don't flush at each put_copy_data call, but flush at get_result. #462
|
175
|
+
- Don't flush at each put_copy_data call, but flush at get_result. [#462](https://github.com/ged/ruby-pg/pull/462)
|
31
176
|
|
32
177
|
|
33
|
-
|
178
|
+
## v1.3.5 [2022-03-31] Lars Kanis <lars@greiz-reinsdorf.de>
|
34
179
|
|
35
180
|
Bugfixes:
|
36
181
|
|
37
|
-
- Handle PGRES_COMMAND_OK in pgresult_stream_any. #447
|
182
|
+
- Handle PGRES_COMMAND_OK in pgresult_stream_any. [#447](https://github.com/ged/ruby-pg/pull/447)
|
38
183
|
Fixes usage when trying to stream the result of a procedure call that returns no results.
|
39
184
|
|
40
185
|
Enhancements:
|
@@ -43,74 +188,74 @@ Enhancements:
|
|
43
188
|
Keeping define_default_types for compatibility.
|
44
189
|
- BasicTypeRegistry: return self instead of objects by accident.
|
45
190
|
This allows call chaining.
|
46
|
-
- Add some April fun. #449
|
191
|
+
- Add some April fun. [#449](https://github.com/ged/ruby-pg/pull/449)
|
47
192
|
|
48
193
|
Documentation:
|
49
194
|
- Refine documentation of conn.socket_io and conn.connect_poll
|
50
195
|
|
51
196
|
|
52
|
-
|
197
|
+
## v1.3.4 [2022-03-10] Lars Kanis <lars@greiz-reinsdorf.de>
|
53
198
|
|
54
199
|
Bugfixes:
|
55
200
|
|
56
|
-
- Don't leak IO in case of connection errors. #439
|
201
|
+
- Don't leak IO in case of connection errors. [#439](https://github.com/ged/ruby-pg/pull/439)
|
57
202
|
Previously it was kept open until the PG::Connection was garbage collected.
|
58
|
-
- Fix a performance regession in conn.get_result noticed in single row mode. #442
|
59
|
-
- Fix occasional error Errno::EBADF (Bad file descriptor) while connecting. #444
|
60
|
-
- Fix compatibility of res.stream_each* methods with Fiber.scheduler. #446
|
61
|
-
- Remove FL_TEST and FL_SET, which are MRI-internal. #437
|
203
|
+
- Fix a performance regession in conn.get_result noticed in single row mode. [#442](https://github.com/ged/ruby-pg/pull/442)
|
204
|
+
- Fix occasional error Errno::EBADF (Bad file descriptor) while connecting. [#444](https://github.com/ged/ruby-pg/pull/444)
|
205
|
+
- Fix compatibility of res.stream_each* methods with Fiber.scheduler. [#446](https://github.com/ged/ruby-pg/pull/446)
|
206
|
+
- Remove FL_TEST and FL_SET, which are MRI-internal. [#437](https://github.com/ged/ruby-pg/pull/437)
|
62
207
|
|
63
208
|
Enhancements:
|
64
209
|
|
65
|
-
- Allow pgresult_stream_any to be used by sequel_pg. #443
|
210
|
+
- Allow pgresult_stream_any to be used by sequel_pg. [#443](https://github.com/ged/ruby-pg/pull/443)
|
66
211
|
|
67
212
|
|
68
|
-
|
213
|
+
## v1.3.3 [2022-02-22] Lars Kanis <lars@greiz-reinsdorf.de>
|
69
214
|
|
70
215
|
Bugfixes:
|
71
216
|
|
72
|
-
- Fix omission of the third digit of IPv4 addresses in connection URI. #435
|
73
|
-
- Fix wrong permission of certs/larskanis-2022.pem in the pg-1.3.2.gem. #432
|
217
|
+
- Fix omission of the third digit of IPv4 addresses in connection URI. [#435](https://github.com/ged/ruby-pg/pull/435)
|
218
|
+
- Fix wrong permission of certs/larskanis-2022.pem in the pg-1.3.2.gem. [#432](https://github.com/ged/ruby-pg/pull/432)
|
74
219
|
|
75
220
|
|
76
|
-
|
221
|
+
## v1.3.2 [2022-02-14] Lars Kanis <lars@greiz-reinsdorf.de>
|
77
222
|
|
78
223
|
Bugfixes:
|
79
224
|
|
80
|
-
- Cancel only active query after failing transaction. #430
|
225
|
+
- Cancel only active query after failing transaction. [#430](https://github.com/ged/ruby-pg/pull/430)
|
81
226
|
This avoids an incompatibility with pgbouncer since pg-1.3.0.
|
82
|
-
- Fix String objects with non-applied encoding when using COPY or record decoders. #427
|
227
|
+
- Fix String objects with non-applied encoding when using COPY or record decoders. [#427](https://github.com/ged/ruby-pg/pull/427)
|
83
228
|
- Update Windows fat binary gem to PostgreSQL-14.2.
|
84
229
|
|
85
230
|
Enhancements:
|
86
231
|
|
87
232
|
- Improve extconf.rb checks to reduces the number of compiler calls.
|
88
|
-
- Add a check for PGRES_PIPELINE_SYNC, to make sure the library version and the header files are PostgreSQL-14+. #429
|
233
|
+
- Add a check for PGRES_PIPELINE_SYNC, to make sure the library version and the header files are PostgreSQL-14+. [#429](https://github.com/ged/ruby-pg/pull/429)
|
89
234
|
|
90
235
|
|
91
|
-
|
236
|
+
## v1.3.1 [2022-02-01] Michael Granger <ged@FaerieMUD.org>
|
92
237
|
|
93
238
|
Bugfixes:
|
94
239
|
|
95
|
-
- Fix wrong handling of socket writability on Windows introduced in #417.
|
240
|
+
- Fix wrong handling of socket writability on Windows introduced in [#417](https://github.com/ged/ruby-pg/pull/417).
|
96
241
|
This caused starvation in conn.put_copy_data.
|
97
|
-
- Fix error in PG.version_string(true). #419
|
98
|
-
- Fix a regression in pg 1.3.0 where Ruby 2.x busy-looping any fractional seconds for every wait. #420
|
242
|
+
- Fix error in PG.version_string(true). [#419](https://github.com/ged/ruby-pg/pull/419)
|
243
|
+
- Fix a regression in pg 1.3.0 where Ruby 2.x busy-looping any fractional seconds for every wait. [#420](https://github.com/ged/ruby-pg/pull/420)
|
99
244
|
|
100
245
|
Enhancements:
|
101
246
|
|
102
247
|
- Raise an error when conn.copy_data is used in nonblocking mode.
|
103
248
|
|
104
249
|
|
105
|
-
|
250
|
+
## v1.3.0 [2022-01-20] Michael Granger <ged@FaerieMUD.org>
|
106
251
|
|
107
252
|
Install Enhancements:
|
108
|
-
- Print some install help if libpq wasn't found. #396
|
253
|
+
- Print some install help if libpq wasn't found. [#396](https://github.com/ged/ruby-pg/pull/396)
|
109
254
|
This should help to pick the necessary package without googling.
|
110
255
|
- Update Windows fat binary gem to OpenSSL-1.1.1m and PostgreSQL-14.1.
|
111
256
|
- Add binary Windows gems for Ruby 3.0 and 3.1.
|
112
|
-
- Make the library path of libpq available in ruby as PG::POSTGRESQL_LIB_PATH and add it to the search paths on Windows similar to +rpath+ on Unix systems. #373
|
113
|
-
- Fall back to pkg-config if pg_config is not found. #380
|
257
|
+
- Make the library path of libpq available in ruby as PG::POSTGRESQL_LIB_PATH and add it to the search paths on Windows similar to +rpath+ on Unix systems. [#373](https://github.com/ged/ruby-pg/pull/373)
|
258
|
+
- Fall back to pkg-config if pg_config is not found. [#380](https://github.com/ged/ruby-pg/pull/380)
|
114
259
|
- Add option to extconf.rb to disable nogvl-wrapping of libpq functions.
|
115
260
|
All methods (except PG::Connection.ping) are nonblocking now, so that GVL unlock is in theory no longer necessary.
|
116
261
|
However it can have some advantage in concurrency, so that GVL unlock is still enabled by default.
|
@@ -118,8 +263,8 @@ Install Enhancements:
|
|
118
263
|
- gem inst pg -- --disable-gvl-unlock
|
119
264
|
|
120
265
|
API Enhancements:
|
121
|
-
- Add full compatibility to Fiber.scheduler introduced in Ruby-3.0. #397
|
122
|
-
- Add async_connect and async_send methods and add specific specs for Fiber.scheduler #342
|
266
|
+
- Add full compatibility to Fiber.scheduler introduced in Ruby-3.0. [#397](https://github.com/ged/ruby-pg/pull/397)
|
267
|
+
- Add async_connect and async_send methods and add specific specs for Fiber.scheduler [#342](https://github.com/ged/ruby-pg/pull/342)
|
123
268
|
- Add async_get_result and async_get_last_result
|
124
269
|
- Add async_get_copy_data
|
125
270
|
- Implement async_put_copy_data/async_put_copy_end
|
@@ -133,35 +278,35 @@ API Enhancements:
|
|
133
278
|
- Avoid PG.connect blocking while address resolution by automatically providing the +hostaddr+ parameter and resolving in Ruby instead of libpq.
|
134
279
|
- On Windows Fiber.scheduler support requires Ruby-3.1+.
|
135
280
|
It is also only partly usable since may ruby IO methods are not yet scheduler aware on Windows.
|
136
|
-
- Add support for pipeline mode of PostgreSQL-14. #401
|
137
|
-
- Allow specification of multiple hosts in PostgreSQL URI. #387
|
281
|
+
- Add support for pipeline mode of PostgreSQL-14. [#401](https://github.com/ged/ruby-pg/pull/401)
|
282
|
+
- Allow specification of multiple hosts in PostgreSQL URI. [#387](https://github.com/ged/ruby-pg/pull/387)
|
138
283
|
- Add new method conn.backend_key - used to implement our own cancel method.
|
139
284
|
|
140
285
|
Type cast enhancements:
|
141
|
-
- Add PG::BasicTypeMapForQueries::BinaryData for encoding of bytea columns. #348
|
142
|
-
- Reduce time to build coder maps and permit to reuse them for several type maps per PG::BasicTypeRegistry::CoderMapsBundle.new(conn) . #376
|
286
|
+
- Add PG::BasicTypeMapForQueries::BinaryData for encoding of bytea columns. [#348](https://github.com/ged/ruby-pg/pull/348)
|
287
|
+
- Reduce time to build coder maps and permit to reuse them for several type maps per PG::BasicTypeRegistry::CoderMapsBundle.new(conn) . [#376](https://github.com/ged/ruby-pg/pull/376)
|
143
288
|
- Make BasicTypeRegistry a class and use a global default instance of it.
|
144
289
|
Now a local type registry can be instanciated and given to the type map, to avoid changing shared global states.
|
145
290
|
- Allow PG::BasicTypeMapForQueries to take a Proc as callback for undefined types.
|
146
291
|
|
147
292
|
Other Enhancements:
|
148
|
-
- Convert all PG classes implemented in C to TypedData objects. #349
|
149
|
-
- Support ObjectSpace.memsize_of(obj) on all classes implemented in C. #393
|
150
|
-
- Make all PG objects implemented in C memory moveable and therefore GC.compact friendly. #349
|
293
|
+
- Convert all PG classes implemented in C to TypedData objects. [#349](https://github.com/ged/ruby-pg/pull/349)
|
294
|
+
- Support ObjectSpace.memsize_of(obj) on all classes implemented in C. [#393](https://github.com/ged/ruby-pg/pull/393)
|
295
|
+
- Make all PG objects implemented in C memory moveable and therefore GC.compact friendly. [#349](https://github.com/ged/ruby-pg/pull/349)
|
151
296
|
- Update errorcodes and error classes to PostgreSQL-14.0.
|
152
297
|
- Add PG::CONNECTION_* constants for conn.status of newer PostgreSQL versions.
|
153
|
-
- Add better support for logical replication. #339
|
298
|
+
- Add better support for logical replication. [#339](https://github.com/ged/ruby-pg/pull/339)
|
154
299
|
- Change conn.socket_io to read+write mode and to a BasicSocket object instead of IO.
|
155
300
|
- Use rb_io_wait() and the conn.socket_io object if available for better compatibility to Fiber.scheduler .
|
156
301
|
Fall back to rb_wait_for_single_fd() on ruby < 3.0.
|
157
|
-
- On Windows use a specialized wait function as a workaround for very poor performance of rb_io_wait(). #416
|
302
|
+
- On Windows use a specialized wait function as a workaround for very poor performance of rb_io_wait(). [#416](https://github.com/ged/ruby-pg/pull/416)
|
158
303
|
|
159
304
|
Bugfixes:
|
160
305
|
- Release GVL while calling PQping which is a blocking method, but it didn't release GVL so far.
|
161
|
-
- Fix Connection#transaction to no longer block on interrupts, for instance when pressing Ctrl-C and cancel a running query. #390
|
162
|
-
- Avoid casting of OIDs to fix compat with Redshift database. #369
|
306
|
+
- Fix Connection#transaction to no longer block on interrupts, for instance when pressing Ctrl-C and cancel a running query. [#390](https://github.com/ged/ruby-pg/pull/390)
|
307
|
+
- Avoid casting of OIDs to fix compat with Redshift database. [#369](https://github.com/ged/ruby-pg/pull/369)
|
163
308
|
- Call conn.block before each conn.get_result call to avoid possible blocking in case of a slow network and multiple query results.
|
164
|
-
- Sporadic Errno::ENOTSOCK when using conn.socket_io on Windows #398
|
309
|
+
- Sporadic Errno::ENOTSOCK when using conn.socket_io on Windows [#398](https://github.com/ged/ruby-pg/pull/398)
|
165
310
|
|
166
311
|
Deprecated:
|
167
312
|
- Add deprecation warning to PG::BasicTypeRegistry.register_type and siblings.
|
@@ -176,37 +321,37 @@ Repository:
|
|
176
321
|
- Add Github Actions CI and testing of source and binary gems.
|
177
322
|
|
178
323
|
|
179
|
-
|
324
|
+
## v1.2.3 [2020-03-18] Michael Granger <ged@FaerieMUD.org>
|
180
325
|
|
181
326
|
Bugfixes:
|
182
327
|
|
183
328
|
- Fix possible segfault at `PG::Coder#encode`, `decode` or their implicit calls through
|
184
|
-
a typemap after GC.compact. #327
|
185
|
-
- Fix possible segfault in `PG::TypeMapByClass` after GC.compact. #328
|
329
|
+
a typemap after GC.compact. [#327](https://github.com/ged/ruby-pg/pull/327)
|
330
|
+
- Fix possible segfault in `PG::TypeMapByClass` after GC.compact. [#328](https://github.com/ged/ruby-pg/pull/328)
|
186
331
|
|
187
332
|
|
188
|
-
|
333
|
+
## v1.2.2 [2020-01-06] Michael Granger <ged@FaerieMUD.org>
|
189
334
|
|
190
335
|
Enhancements:
|
191
336
|
|
192
337
|
- Add a binary gem for Ruby 2.7.
|
193
338
|
|
194
339
|
|
195
|
-
|
340
|
+
## v1.2.1 [2020-01-02] Michael Granger <ged@FaerieMUD.org>
|
196
341
|
|
197
342
|
Enhancements:
|
198
343
|
|
199
344
|
- Added internal API for sequel_pg compatibility.
|
200
345
|
|
201
346
|
|
202
|
-
|
347
|
+
## v1.2.0 [2019-12-20] Michael Granger <ged@FaerieMUD.org>
|
203
348
|
|
204
349
|
Repository:
|
205
350
|
- Our primary repository has been moved to Github https://github.com/ged/ruby-pg .
|
206
|
-
Most of the issues from https://bitbucket.org/ged/ruby-pg have been migrated. #43
|
351
|
+
Most of the issues from https://bitbucket.org/ged/ruby-pg have been migrated. [#43](https://github.com/ged/ruby-pg/pull/43)
|
207
352
|
|
208
353
|
API enhancements:
|
209
|
-
- Add PG::Result#field_name_type= and siblings to allow symbols to be used as field names. #306
|
354
|
+
- Add PG::Result#field_name_type= and siblings to allow symbols to be used as field names. [#306](https://github.com/ged/ruby-pg/pull/306)
|
210
355
|
- Add new methods for error reporting:
|
211
356
|
- PG::Connection#set_error_context_visibility
|
212
357
|
- PG::Result#verbose_error_message
|
@@ -215,29 +360,29 @@ API enhancements:
|
|
215
360
|
- New constants: PG_DIAG_SEVERITY_NONLOCALIZED, PQERRORS_SQLSTATE, PQSHOW_CONTEXT_NEVER, PQSHOW_CONTEXT_ERRORS, PQSHOW_CONTEXT_ALWAYS
|
216
361
|
|
217
362
|
Type cast enhancements:
|
218
|
-
- Add PG::TextEncoder::Record and PG::TextDecoder::Record for en/decoding of Composite Types. #258, #36
|
363
|
+
- Add PG::TextEncoder::Record and PG::TextDecoder::Record for en/decoding of Composite Types. [#258](https://github.com/ged/ruby-pg/pull/258), [#36](https://github.com/ged/ruby-pg/pull/36)
|
219
364
|
- Add PG::BasicTypeRegistry.register_coder to register instances instead of classes.
|
220
365
|
This is useful to register parametrized en/decoders like PG::TextDecoder::Record .
|
221
366
|
- Add PG::BasicTypeMapForQueries#encode_array_as= to switch between various interpretations of ruby arrays.
|
222
367
|
- Add Time, Array<Time>, Array<BigDecimal> and Array<IPAddr> encoders to PG::BasicTypeMapForQueries
|
223
|
-
- Exchange sprintf based float encoder by very fast own implementation with more natural format. #301
|
368
|
+
- Exchange sprintf based float encoder by very fast own implementation with more natural format. [#301](https://github.com/ged/ruby-pg/pull/301)
|
224
369
|
- Define encode and decode methods only in en/decoders that implement it, so that they can be queried by respond_to? .
|
225
370
|
- Improve PG::TypeMapByColumn#inspect
|
226
|
-
- Accept Integer and Float as input to TextEncoder::Numeric . #310
|
371
|
+
- Accept Integer and Float as input to TextEncoder::Numeric . [#310](https://github.com/ged/ruby-pg/pull/310)
|
227
372
|
|
228
373
|
Other enhancements:
|
229
374
|
- Allocate the data part and the ruby object of PG::Result in one step, so that we don't need to check for valid data.
|
230
|
-
This removes PG::Result.allocate and PG::Result.new, which were callable but without any practical use. #42
|
375
|
+
This removes PG::Result.allocate and PG::Result.new, which were callable but without any practical use. [#42](https://github.com/ged/ruby-pg/pull/42)
|
231
376
|
- Make use of PQresultMemorySize() of PostgreSQL-12 and fall back to our internal estimator.
|
232
377
|
- Improve performance of PG::Result#stream_each_tuple .
|
233
|
-
- Store client encoding in data part of PG::Connection and PG::Result objects, so that we no longer use ruby's internal encoding bits. #280
|
378
|
+
- Store client encoding in data part of PG::Connection and PG::Result objects, so that we no longer use ruby's internal encoding bits. [#280](https://github.com/ged/ruby-pg/pull/280)
|
234
379
|
- Update Windows fat binary gem to OpenSSL-1.1.1d and PostgreSQL-12.1.
|
235
380
|
- Add support for TruffleRuby. It is regularly tested as part of our CI.
|
236
381
|
- Enable +frozen_string_literal+ in all pg's ruby files
|
237
382
|
|
238
383
|
Bugfixes:
|
239
384
|
- Update the license in gemspec to "BSD-2-Clause".
|
240
|
-
It was incorrectly labeled "BSD-3-Clause". #40
|
385
|
+
It was incorrectly labeled "BSD-3-Clause". [#40](https://github.com/ged/ruby-pg/pull/40)
|
241
386
|
- Respect PG::Coder#flags in PG::Coder#to_h.
|
242
387
|
- Fix PG::Result memsize reporting after #clear.
|
243
388
|
- Release field names to GC on PG::Result#clear.
|
@@ -251,7 +396,7 @@ Deprecated:
|
|
251
396
|
Removed:
|
252
397
|
- Remove PG::Connection#guess_result_memsize= which was temporary added in pg-1.1.
|
253
398
|
- Remove PG::Result.allocate and PG::Result.new (see enhancements).
|
254
|
-
- Remove support of tainted objects. #307
|
399
|
+
- Remove support of tainted objects. [#307](https://github.com/ged/ruby-pg/pull/307)
|
255
400
|
- Remove support of ruby-2.0 and 2.1. Minimum is ruby-2.2 now.
|
256
401
|
|
257
402
|
Documentation:
|
@@ -262,30 +407,30 @@ Documentation:
|
|
262
407
|
- Fix documentation of many constants
|
263
408
|
|
264
409
|
|
265
|
-
|
410
|
+
## v1.1.4 [2019-01-08] Michael Granger <ged@FaerieMUD.org>
|
266
411
|
|
267
412
|
- Fix PG::BinaryDecoder::Timestamp on 32 bit systems. # 284
|
268
413
|
- Add new error-codes of PostgreSQL-11.
|
269
414
|
- Add ruby-2.6 support for Windows fat binary gems and remove ruby-2.0 and 2.1.
|
270
415
|
|
271
416
|
|
272
|
-
|
417
|
+
## v1.1.3 [2018-09-06] Michael Granger <ged@FaerieMUD.org>
|
273
418
|
|
274
419
|
- Revert opimization that was sometimes causing EBADF in rb_wait_for_single_fd().
|
275
420
|
|
276
421
|
|
277
|
-
|
422
|
+
## v1.1.2 [2018-08-28] Michael Granger <ged@FaerieMUD.org>
|
278
423
|
|
279
424
|
- Don't generate aliases for JOHAB encoding.
|
280
425
|
This avoids linking to deprecated/private function rb_enc(db)_alias().
|
281
426
|
|
282
427
|
|
283
|
-
|
428
|
+
## v1.1.1 [2018-08-27] Michael Granger <ged@FaerieMUD.org>
|
284
429
|
|
285
430
|
- Reduce deprecation warnings to only one message per deprecation.
|
286
431
|
|
287
432
|
|
288
|
-
|
433
|
+
## v1.1.0 [2018-08-24] Michael Granger <ged@FaerieMUD.org>
|
289
434
|
|
290
435
|
Deprecated (disable warnings per PG_SKIP_DEPRECATION_WARNING=1):
|
291
436
|
- Forwarding conn.exec to conn.exec_params is deprecated.
|
@@ -311,7 +456,7 @@ Result retrieval enhancements:
|
|
311
456
|
- Make the estimated PG::Result size available to ObjectSpace.memsize_of(result) .
|
312
457
|
|
313
458
|
Type cast enhancements:
|
314
|
-
- Replace Ruby code by a faster C implementation of the SimpleDecoder's timestamp decode functions. github #20
|
459
|
+
- Replace Ruby code by a faster C implementation of the SimpleDecoder's timestamp decode functions. github [#20](https://github.com/ged/ruby-pg/pull/20)
|
315
460
|
- Interpret years with up to 7 digists and BC dates by timestamp decoder.
|
316
461
|
- Add text timestamp decoders for UTC vs. local timezone variations.
|
317
462
|
- Add text timestamp encoders for UTC timezone.
|
@@ -326,12 +471,12 @@ Source code enhancements:
|
|
326
471
|
- Fix headers and permission bits of various repository files.
|
327
472
|
|
328
473
|
Bugfixes:
|
329
|
-
- Properly decode array with prepended dimensions. #272
|
474
|
+
- Properly decode array with prepended dimensions. [#272](https://github.com/ged/ruby-pg/pull/272)
|
330
475
|
For now dimension decorations are ignored, but a correct Array is returned.
|
331
|
-
- Array-Decoder: Avoid leaking memory when an Exception is raised while parsing. Fixes #279
|
476
|
+
- Array-Decoder: Avoid leaking memory when an Exception is raised while parsing. Fixes [#279](https://github.com/ged/ruby-pg/pull/279)
|
332
477
|
|
333
478
|
|
334
|
-
|
479
|
+
## v1.0.0 [2018-01-10] Michael Granger <ged@FaerieMUD.org>
|
335
480
|
|
336
481
|
Deprecated:
|
337
482
|
- Deprecate Ruby older than 2.2.
|
@@ -348,16 +493,16 @@ Enhancements:
|
|
348
493
|
OpenSSL 1.1.0g.
|
349
494
|
|
350
495
|
Bugfixes:
|
351
|
-
- Fix URI detection for connection strings. #265 (thanks to jjoos)
|
496
|
+
- Fix URI detection for connection strings. [#265](https://github.com/ged/ruby-pg/pull/265) (thanks to jjoos)
|
352
497
|
- MINGW: Workaround segfault due to GCC linker error in conjunction with MSVC.
|
353
498
|
This happens when linking to PostgreSQL-10.0-x64 from EnterpriseDB.
|
354
499
|
|
355
500
|
Documentation fixes:
|
356
|
-
- Add PostgreSQL version since when the given function is supported. #263
|
501
|
+
- Add PostgreSQL version since when the given function is supported. [#263](https://github.com/ged/ruby-pg/pull/263)
|
357
502
|
- Better documentation to `encoder` and `decoder` arguments of COPY related methods.
|
358
503
|
|
359
504
|
|
360
|
-
|
505
|
+
## v0.21.0 [2017-06-12] Michael Granger <ged@FaerieMUD.org>
|
361
506
|
|
362
507
|
Enhancements:
|
363
508
|
- Move add_dll_directory to the Runtime namespace for newest versions
|
@@ -373,7 +518,7 @@ New Samples:
|
|
373
518
|
- Add an example of the nicer #copy_data way of doing `COPY`.
|
374
519
|
|
375
520
|
|
376
|
-
|
521
|
+
## v0.20.0 [2017-03-10] Michael Granger <ged@FaerieMUD.org>
|
377
522
|
|
378
523
|
Enhancements:
|
379
524
|
- Update error codes to PostgreSQL-9.6
|
@@ -382,22 +527,22 @@ Enhancements:
|
|
382
527
|
- Add support for RubyInstaller2 to Windows binary gems.
|
383
528
|
|
384
529
|
Bugfixes:
|
385
|
-
- Use secure JSON methods for JSON (de)serialisation. #248
|
530
|
+
- Use secure JSON methods for JSON (de)serialisation. [#248](https://github.com/ged/ruby-pg/pull/248)
|
386
531
|
- Fix Result#inspect on a cleared result.
|
387
|
-
- Fix test case that failed on Ruby-2.4. #255
|
532
|
+
- Fix test case that failed on Ruby-2.4. [#255](https://github.com/ged/ruby-pg/pull/255)
|
388
533
|
|
389
534
|
Documentation fixes:
|
390
535
|
- Talk about Integer instead of Fixnum.
|
391
536
|
- Fix method signature of Coder#encode.
|
392
537
|
|
393
538
|
|
394
|
-
|
539
|
+
## v0.19.0 [2016-09-21] Michael Granger <ged@FaerieMUD.org>
|
395
540
|
|
396
541
|
- Deprecate Ruby 1.9
|
397
542
|
|
398
543
|
Enhancements:
|
399
544
|
- Respect and convert character encoding of all strings sent
|
400
|
-
to the server. #231
|
545
|
+
to the server. [#231](https://github.com/ged/ruby-pg/pull/231)
|
401
546
|
- Add PostgreSQL-9.5 functions PQsslInUse(), PQsslAttribute()
|
402
547
|
and PQsslAttributeNames().
|
403
548
|
- Various documentation fixes and improvements.
|
@@ -410,24 +555,24 @@ Enhancements:
|
|
410
555
|
- Allow build from git per bundler.
|
411
556
|
|
412
557
|
Bugfixes:
|
413
|
-
- Release GVL while calling PQsetClientEncoding(). #245
|
414
|
-
- Add __EXTENSIONS__ to Solaris/SmartOS for Ruby >= 2.3.x. #236
|
558
|
+
- Release GVL while calling PQsetClientEncoding(). [#245](https://github.com/ged/ruby-pg/pull/245)
|
559
|
+
- Add __EXTENSIONS__ to Solaris/SmartOS for Ruby >= 2.3.x. [#236](https://github.com/ged/ruby-pg/pull/236)
|
415
560
|
- Fix wrong exception when running SQL while in Connection#copy_data
|
416
561
|
block for output
|
417
562
|
|
418
563
|
|
419
|
-
|
564
|
+
## v0.18.4 [2015-11-13] Michael Granger <ged@FaerieMUD.org>
|
420
565
|
|
421
566
|
Enhancements:
|
422
|
-
- Fixing compilation problems with Microsoft Visual Studio 2008. GH #10
|
423
|
-
- Avoid name clash with xcode and jemalloc. PR#22, PR#23
|
567
|
+
- Fixing compilation problems with Microsoft Visual Studio 2008. GH [#10](https://github.com/ged/ruby-pg/pull/10)
|
568
|
+
- Avoid name clash with xcode and jemalloc. PR[#22](https://github.com/ged/ruby-pg/pull/22), PR[#23](https://github.com/ged/ruby-pg/pull/23)
|
424
569
|
|
425
570
|
Bugfixes:
|
426
571
|
- Avoid segfault, when quote_ident or TextEncoder::Identifier
|
427
|
-
is called with Array containing non-strings. #226
|
572
|
+
is called with Array containing non-strings. [#226](https://github.com/ged/ruby-pg/pull/226)
|
428
573
|
|
429
574
|
|
430
|
-
|
575
|
+
## v0.18.3 [2015-09-03] Michael Granger <ged@FaerieMUD.org>
|
431
576
|
|
432
577
|
Enhancements:
|
433
578
|
- Use rake-compiler-dock to build windows gems easily.
|
@@ -435,12 +580,12 @@ Enhancements:
|
|
435
580
|
|
436
581
|
Bugfixes:
|
437
582
|
- Fix data type resulting in wrong base64 encoding.
|
438
|
-
- Change instance_of checks to kind_of for subclassing. #220
|
583
|
+
- Change instance_of checks to kind_of for subclassing. [#220](https://github.com/ged/ruby-pg/pull/220)
|
439
584
|
- TextDecoder::Date returns an actual Ruby Date instead of a Time
|
440
585
|
(thanks to Thomas Ramfjord)
|
441
586
|
|
442
587
|
|
443
|
-
|
588
|
+
## v0.18.2 [2015-05-14] Michael Granger <ged@FaerieMUD.org>
|
444
589
|
|
445
590
|
Enhancements:
|
446
591
|
|
@@ -450,22 +595,22 @@ Enhancements:
|
|
450
595
|
Bugfixes:
|
451
596
|
|
452
597
|
- Speedups and fixes for PG::TextDecoder::Identifier and quoting behavior
|
453
|
-
- Revert addition of PG::Connection#hostaddr [#202].
|
454
|
-
- Fix decoding of fractional timezones and timestamps [#203]
|
598
|
+
- Revert addition of PG::Connection#hostaddr [[#202](https://github.com/ged/ruby-pg/pull/202)].
|
599
|
+
- Fix decoding of fractional timezones and timestamps [[#203](https://github.com/ged/ruby-pg/pull/203)]
|
455
600
|
- Fixes for non-C99 compilers
|
456
601
|
- Avoid possible symbol name clash when linking against static libpq.
|
457
602
|
|
458
603
|
|
459
|
-
|
604
|
+
## v0.18.1 [2015-01-05] Michael Granger <ged@FaerieMUD.org>
|
460
605
|
|
461
|
-
Correct the minimum compatible Ruby version to 1.9.3. #199
|
606
|
+
Correct the minimum compatible Ruby version to 1.9.3. [#199](https://github.com/ged/ruby-pg/pull/199)
|
462
607
|
|
463
608
|
|
464
|
-
|
609
|
+
## v0.18.0 [2015-01-01] Michael Granger <ged@FaerieMUD.org>
|
465
610
|
|
466
611
|
Bugfixes:
|
467
|
-
- Fix OID to Integer mapping (it is unsigned now). #187
|
468
|
-
- Fix possible segfault in conjunction with notice receiver. #185
|
612
|
+
- Fix OID to Integer mapping (it is unsigned now). [#187](https://github.com/ged/ruby-pg/pull/187)
|
613
|
+
- Fix possible segfault in conjunction with notice receiver. [#185](https://github.com/ged/ruby-pg/pull/185)
|
469
614
|
|
470
615
|
Enhancements:
|
471
616
|
|
@@ -484,7 +629,7 @@ Enhancements:
|
|
484
629
|
|
485
630
|
|
486
631
|
|
487
|
-
|
632
|
+
## v0.17.1 [2013-12-18] Michael Granger <ged@FaerieMUD.org>
|
488
633
|
|
489
634
|
Bugfixes:
|
490
635
|
|
@@ -500,11 +645,11 @@ Documentation fixes:
|
|
500
645
|
- Fix documentation for PG::Connection::conndefaults.
|
501
646
|
|
502
647
|
|
503
|
-
|
648
|
+
## v0.17.0 [2013-09-15] Michael Granger <ged@FaerieMUD.org>
|
504
649
|
|
505
650
|
Bugfixes:
|
506
651
|
|
507
|
-
- Fix crash by calling PQsend* and PQisBusy without GVL (#171).
|
652
|
+
- Fix crash by calling PQsend* and PQisBusy without GVL ([#171](https://github.com/ged/ruby-pg/pull/171)).
|
508
653
|
|
509
654
|
Enhancements:
|
510
655
|
|
@@ -515,18 +660,18 @@ Enhancements:
|
|
515
660
|
to stack method calls.
|
516
661
|
|
517
662
|
|
518
|
-
|
663
|
+
## v0.16.0 [2013-07-22] Michael Granger <ged@FaerieMUD.org>
|
519
664
|
|
520
665
|
Bugfixes:
|
521
666
|
|
522
667
|
- Avoid warnings about uninitialized instance variables.
|
523
668
|
- Use a more standard method of adding library and include directories.
|
524
|
-
This fixes build on AIX (Github #7) and Solaris (#164).
|
669
|
+
This fixes build on AIX (Github [#7](https://github.com/ged/ruby-pg/pull/7)) and Solaris ([#164](https://github.com/ged/ruby-pg/pull/164)).
|
525
670
|
- Cancel the running query, if a thread is about to be killed (e.g. by CTRL-C).
|
526
671
|
- Fix GVL issue with wait_for_notify/notifies and notice callbacks.
|
527
672
|
- Set proper encoding on the string returned by quote_ident, escape_literal
|
528
|
-
and escape_identifier (#163).
|
529
|
-
- Use nil as PG::Error#result in case of a NULL-result from libpq (#166).
|
673
|
+
and escape_identifier ([#163](https://github.com/ged/ruby-pg/pull/163)).
|
674
|
+
- Use nil as PG::Error#result in case of a NULL-result from libpq ([#166](https://github.com/ged/ruby-pg/pull/166)).
|
530
675
|
- Recalculate the timeout of conn#wait_for_notify and conn#block in case
|
531
676
|
of socket events that require re-runs of select().
|
532
677
|
|
@@ -536,20 +681,20 @@ Documentation fixes:
|
|
536
681
|
|
537
682
|
Enhancements:
|
538
683
|
|
539
|
-
- Add unique exception classes for each PostgreSQL error type (#5).
|
540
|
-
- Return result of the block in conn#transaction instead of nil (#158).
|
684
|
+
- Add unique exception classes for each PostgreSQL error type ([#5](https://github.com/ged/ruby-pg/pull/5)).
|
685
|
+
- Return result of the block in conn#transaction instead of nil ([#158](https://github.com/ged/ruby-pg/pull/158)).
|
541
686
|
- Allow 'rake compile' and 'rake gem' on non mercurial repos.
|
542
|
-
- Add support for PG_DIAG_*_NAME error fields of PostgreSQL-9.3 (#161).
|
687
|
+
- Add support for PG_DIAG_*_NAME error fields of PostgreSQL-9.3 ([#161](https://github.com/ged/ruby-pg/pull/161)).
|
543
688
|
|
544
689
|
|
545
|
-
|
690
|
+
## v0.15.1 [2013-04-08] Michael Granger <ged@FaerieMUD.org>
|
546
691
|
|
547
692
|
Bugfixes:
|
548
693
|
|
549
694
|
- Shorten application_name to avoid warnings about truncated identifier.
|
550
695
|
|
551
696
|
|
552
|
-
|
697
|
+
## v0.15.0 [2013-03-03] Michael Granger <ged@FaerieMUD.org>
|
553
698
|
|
554
699
|
Bugfixes:
|
555
700
|
|
@@ -574,7 +719,7 @@ Enhancements:
|
|
574
719
|
- Refactor different variants of waiting for the connection socket.
|
575
720
|
- Make use of rb_thread_fd_select() on Ruby 1.9 and avoid deprecated
|
576
721
|
rb_thread_select().
|
577
|
-
- Add an example of how to insert array data using a prepared statement (#145).
|
722
|
+
- Add an example of how to insert array data using a prepared statement ([#145](https://github.com/ged/ruby-pg/pull/145)).
|
578
723
|
- Add continuous integration tests on travis-ci.org.
|
579
724
|
- Add PG::Result#each_row for iterative over result sets by row. Thanks to
|
580
725
|
Aaron Patterson for the patch.
|
@@ -587,11 +732,11 @@ Specs:
|
|
587
732
|
- Avoid fork() in specs to allow usage on Windows and JRuby.
|
588
733
|
|
589
734
|
|
590
|
-
|
735
|
+
## v0.14.1 [2012-09-02] Michael Granger <ged@FaerieMUD.org>
|
591
736
|
|
592
737
|
Important bugfix:
|
593
738
|
|
594
|
-
- Fix stack overflow bug in PG::Result#values and #column_values (#135). Thanks
|
739
|
+
- Fix stack overflow bug in PG::Result#values and #column_values ([#135](https://github.com/ged/ruby-pg/pull/135)). Thanks
|
595
740
|
to everyone who reported the bug, and Lars Kanis especially for figuring out
|
596
741
|
the problem.
|
597
742
|
|
@@ -604,13 +749,13 @@ Documentation fixes:
|
|
604
749
|
- Add note about the usage scope of the result object received by the
|
605
750
|
#set_notice_receiver block. (Lars Kanis)
|
606
751
|
- Add PGRES_COPY_BOTH to documentation of PG::Result#result_status. (Lars Kanis)
|
607
|
-
- Add some documentation to PG::Result#fnumber (fix for #139)
|
752
|
+
- Add some documentation to PG::Result#fnumber (fix for [#139](https://github.com/ged/ruby-pg/pull/139))
|
608
753
|
|
609
754
|
|
610
|
-
|
755
|
+
## v0.14.0 [2012-06-17] Michael Granger <ged@FaerieMUD.org>
|
611
756
|
|
612
757
|
Bugfixes:
|
613
|
-
#47, #104
|
758
|
+
[#47](https://github.com/ged/ruby-pg/pull/47), [#104](https://github.com/ged/ruby-pg/pull/104)
|
614
759
|
|
615
760
|
|
616
761
|
New Methods for PostgreSQL 9 and async API support:
|
@@ -635,20 +780,20 @@ monitoring for replication lag, shipping WAL files for replication,
|
|
635
780
|
automated tablespace partitioning, etc. See the samples/ directory.
|
636
781
|
|
637
782
|
|
638
|
-
|
783
|
+
## v0.13.2 [2012-02-22] Michael Granger <ged@FaerieMUD.org>
|
639
784
|
|
640
785
|
- Make builds against PostgreSQL earlier than 8.3 fail with a descriptive
|
641
786
|
message instead of a compile failure.
|
642
787
|
|
643
788
|
|
644
|
-
|
789
|
+
## v0.13.1 [2012-02-12] Michael Granger <ged@FaerieMUD.org>
|
645
790
|
|
646
791
|
- Made use of a finished PG::Connection raise a PG::Error instead of
|
647
|
-
a fatal error (#110).
|
648
|
-
- Added missing BSDL license file (#108)
|
792
|
+
a fatal error ([#110](https://github.com/ged/ruby-pg/pull/110)).
|
793
|
+
- Added missing BSDL license file ([#108](https://github.com/ged/ruby-pg/pull/108))
|
649
794
|
|
650
795
|
|
651
|
-
|
796
|
+
## v0.13.0 [2012-02-09] Michael Granger <ged@FaerieMUD.org>
|
652
797
|
|
653
798
|
Reorganization of modules/classes to be better Ruby citizens (with backward-compatible aliases):
|
654
799
|
- Created toplevel namespace 'PG' to correspond with the gem name.
|
@@ -677,23 +822,23 @@ Bugfixes:
|
|
677
822
|
|
678
823
|
|
679
824
|
|
680
|
-
|
825
|
+
## v0.12.2 [2012-01-03] Michael Granger <ged@FaerieMUD.org>
|
681
826
|
|
682
827
|
- Fix for the 1.8.7 breakage introduced by the st.h fix for alternative Ruby
|
683
|
-
implementations (#97 and #98). Thanks to Lars Kanis for the patch.
|
684
|
-
- Encode error messages with the connection's encoding under 1.9 (#96)
|
828
|
+
implementations ([#97](https://github.com/ged/ruby-pg/pull/97) and [#98](https://github.com/ged/ruby-pg/pull/98)). Thanks to Lars Kanis for the patch.
|
829
|
+
- Encode error messages with the connection's encoding under 1.9 ([#96](https://github.com/ged/ruby-pg/pull/96))
|
685
830
|
|
686
831
|
|
687
|
-
|
832
|
+
## v0.12.1 [2011-12-14] Michael Granger <ged@FaerieMUD.org>
|
688
833
|
|
689
834
|
- Made rake-compiler a dev dependency, as Rubygems doesn't use the Rakefile
|
690
835
|
for compiling the extension. Thanks to eolamey@bitbucket and Jeremy Evans
|
691
836
|
for pointing this out.
|
692
837
|
- Added an explicit include for ruby/st.h for implementations that need it
|
693
|
-
(fixes #95).
|
838
|
+
(fixes [#95](https://github.com/ged/ruby-pg/pull/95)).
|
694
839
|
|
695
840
|
|
696
|
-
|
841
|
+
## v0.12.0 [2011-12-07] Michael Granger <ged@FaerieMUD.org>
|
697
842
|
|
698
843
|
- PGconn#wait_for_notify
|
699
844
|
* send nil as the payload argument if the NOTIFY didn't have one.
|
@@ -704,7 +849,7 @@ Bugfixes:
|
|
704
849
|
(Brian Weaver).
|
705
850
|
- Fixes for Win32 async queries (Rafał Bigaj)
|
706
851
|
- Memory leak fixed: Closing opened WSA event. (rafal)
|
707
|
-
- Fixes for #66 Win32 asynchronous queries hang on connection
|
852
|
+
- Fixes for [#66](https://github.com/ged/ruby-pg/pull/66) Win32 asynchronous queries hang on connection
|
708
853
|
error. (rafal)
|
709
854
|
- Fixed a typo in PGconn#error_message's documentation
|
710
855
|
- fixing unused variable warnings for ruby 1.9.3 (Aaron Patterson)
|
@@ -713,7 +858,7 @@ Bugfixes:
|
|
713
858
|
- Updates for the Win32 binary gem builds (Lars Kanis)
|
714
859
|
|
715
860
|
|
716
|
-
|
861
|
+
## v0.11.0 [2011-02-09] Michael Granger <ged@FaerieMUD.org>
|
717
862
|
|
718
863
|
Enhancements:
|
719
864
|
|
@@ -722,19 +867,19 @@ Enhancements:
|
|
722
867
|
the patch.
|
723
868
|
|
724
869
|
|
725
|
-
|
870
|
+
## v0.10.1 [2011-01-19] Michael Granger <ged@FaerieMUD.org>
|
726
871
|
|
727
872
|
Bugfixes:
|
728
873
|
|
729
874
|
* Add an include guard for pg.h
|
730
875
|
* Simplify the common case require of the ext
|
731
876
|
* Include the extconf header
|
732
|
-
* Fix compatibility with versions of PostgreSQL without PQgetCancel. (fixes #36)
|
733
|
-
* Fix require for natively-compiled extension under Windows. (fixes #55)
|
734
|
-
* Change rb_yield_splat() to rb_yield_values() for compatibility with Rubinius. (fixes #54)
|
877
|
+
* Fix compatibility with versions of PostgreSQL without PQgetCancel. (fixes [#36](https://github.com/ged/ruby-pg/pull/36))
|
878
|
+
* Fix require for natively-compiled extension under Windows. (fixes [#55](https://github.com/ged/ruby-pg/pull/55))
|
879
|
+
* Change rb_yield_splat() to rb_yield_values() for compatibility with Rubinius. (fixes [#54](https://github.com/ged/ruby-pg/pull/54))
|
735
880
|
|
736
881
|
|
737
|
-
|
882
|
+
## v0.10.0 [2010-12-01] Michael Granger <ged@FaerieMUD.org>
|
738
883
|
|
739
884
|
Enhancements:
|
740
885
|
|
@@ -746,11 +891,11 @@ Bugfixes:
|
|
746
891
|
* Fixed issue with PGconn#wait_for_notify that caused it to miss notifications that happened after
|
747
892
|
the LISTEN but before the wait_for_notify.
|
748
893
|
|
749
|
-
|
894
|
+
## v0.9.0 [2010-02-28] Michael Granger <ged@FaerieMUD.org>
|
750
895
|
|
751
896
|
Bugfixes.
|
752
897
|
|
753
|
-
|
898
|
+
## v0.8.0 [2009-03-28] Jeff Davis <davis.jeffrey@gmail.com>
|
754
899
|
|
755
900
|
Bugfixes, better Windows support.
|
756
901
|
|