pg 1.4.5 → 1.5.4

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