pg 1.4.5 → 1.5.3

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