pg 1.4.1 → 1.5.6

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