pg 1.4.5-x64-mingw-ucrt → 1.5.0-x64-mingw-ucrt

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