forked from will/crystal-pg
-
Notifications
You must be signed in to change notification settings - Fork 0
/
CHANGELOG
243 lines (200 loc) · 8.13 KB
/
CHANGELOG
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
v?.?.? upcoming
=====================
v0.23.2 2020-03-27
=====================
* Greatly reduce CPU consumption while reading result sets (thanks @jgaskins)
v0.23.1 2020-01-30
=====================
* update for Crystal 0.36.0 (thanks @bcardiff)
v0.23.0 2020-01-12
=====================
* (breaking) Numeric#to_f for NaN now returns a NaN float instead of 0.0
* add auth_methods config setting to control which methods the client can
accpet. Defaults to `scram-sha-256` and `md5`. Also optionally adds support
for `cleartext`, but it is not on by default as simply having this on can let
MITM attackers steal your password. (thanks @straight-shoota)
* add support for decoding interval type (thanks @pascalbetz)
* Postgres 13 is now officially supported and tested on CI and Postgres 9.4
support has ended, though as the postgres protocol itself hasn't changed,
it still probably works.
* Fix overflow for Numeric#to_f for numerics with many digits. This change
potentially introduces more floating point errors. If you require full
precision use the optional big rational conversion instead.
* Read Slice(UInt8) as String if given as type. This allows text datayptes with
unstable OIDs such as citext to be more easliy used. (thanks @matthewmcgarvey)
* Add UUIDs to array decoders (thanks @jwoertink)
v0.22.1 2020-10-12
=====================
* fix shard.yml mistake in v0.22.0
v0.22.0 2020-10-07
=====================
* (breaking) UUIDs decode into UUID type instead of String (thanks @jgaskins)
* Update crystal-db to 0.10 for logging support (thanks @bcardiff)
v0.21.1 2020-06-09
=====================
* Support Crystal v0.35.0 (thanks @bcardiff)
v0.21.0 2020-04-08
=====================
* Support Crystal v0.34.0 (thanks @straight-shoota, @bcardiff)
* Update crystal db support to 0.9.0 (thanks @bcardiff)
* Add Error Handling sample in README (thanks @ArtLinkov)
v0.20.0 2019-12-17
=====================
* bugfix: negative bigint decoding (thanks @asterite)
* Update crystal db support to 0.8.0 (thanks @bcardiff)
v0.19.0 2019-09-21
=====================
* fix ipv6 hostnames (thanks @j8r)
* Update crystal db support to 0.7.0 (thanks @bcardiff)
v0.18.1 2019-08-09
=====================
* bugfix: Fix Time encoding for non-zero-offset times (thanks @straight-shoota)
v0.18.0 2019-08-04
=====================
* Add SCRAM-SHA-256 support
* NOTE: SASLPrep is missing as of this realease, so not all passwords work
* Fix reading large number of UUIDs (thanks @asterite)
* Correctly encode timestamp values to consider microseconds (thanks @asterite)
* Update crystal db support to 0.6.0 (thanks @bcardiff)
v0.17.0 2019-07-19
=====================
* Add `Enumerable` channels overload for `PG.connect_listen` (thanks @vladfaust)
* Fixes Time.new deprecation warning (thanks @bcardiff)
* Ensure PQ::Connection#do_close does not raise (thanks @bcardiff)
* Fix IOError on closed connection (thanks @omarroth)
* Array fixes (thanks @asterite)
* properly handle exceptions during decoding array
* add Numeric#inspect
* prevent decoding array of numeric as floats
* internal: map each type to decoder
v0.16.1 2019-04-15
=====================
* Support Crystal v0.28.0 (thanks @bcardiff)
* Fix support for reading a NoticeResponse at row start (thanks @straight-shoota)
v0.16.0 2019-04-02
=====================
* Support connection negotiation without BackendKeyData frame (thanks @rx14)
* Make connection client encoding check case insesitive (thanks @yumoose)
* Support client cert auth (thanks @sanderhahn)
* Fix reading null when expecting array (thanks @straight-shoota)
* Fix encoding string arrays with special characters (thanks @straight-shoota)
* Fix version parser (thanks @straight-shoota)
v0.15.0 2018-06-15
=====================
* Support Crystal v0.25 (thanks @greenbigfrog)
* fix PG::Numeric#to_s on numbers with >= weight than ndigits, eg 800000 (#133)
* fix PG::Numeric#to_s on numbers where the `digits` expected to be zero padded
and other cases (#134)
* Set cause when raising DB::ConnectionRefused (thanks @rx14)
v0.14.1 2017-12-26
=====================
* Update crystal db support to 0.5.0 (thanks @bcardiff)
v0.14.0 2017-12-26
=====================
* Support Crystal v0.24, breaks support for older versions
* Support Postgres v10.0+ new two digit version scheme in #version
v0.13.4 2017-10-16
=====================
* fix CI (thanks @waghanza)
* bugfix: make sure to read all nulls (thanks @ZeWebDev)
* bugfix: no longer hangs on unhandeled exceptions (thanks @bigtunacan)
v0.13.3 2017-03-21
=====================
* Increased precision when encoding times
* Use DB.connect in ListenConnection to avoid creating a connection pool (thanks @bcardiff)
* Updates to use db 0.4.0. (thanks again @bcardiff)
v0.13.2 2017-02-21
=====================
* update to crystal 0.21.0 (thanks @felipeelias)
v0.13.1 2016-12-25
=====================
* update to crystal 0.20.3 (thanks @bcardiff)
v0.13.0 2016-12-21
=====================
* Update to support crystal-db's connection pooling (thanks @bcardiff)
v0.12.0 2016-12-10
=====================
* Uses crystal-db api (thanks @asterite)
v0.11.0 2016-09-04
=====================
* Adds dedicated LISTEN connection
v0.10.0 2016-09-03
=====================
* Adds support for array types
v0.9.1 2016-08-23
=====================
* Wrap query execution in a mutext to prevent protocol desynchronization
v0.9.0 2016-07-26
=====================
* remove support for plaintext auth to prevent downgrade mitm attacks
* fix for multibyte characters in query strings
v0.8.0 2016-06-17
=====================
* (breaking) geo points now all have own types (thanks @asterite)
* support crystal 0.18
v0.7.1 2016-05-15
=====================
* (breaking) unknown oids decoded as byte slices instead of string
* fix shard.yml
* Adds optional BigRational extension to PG::Numeric
* bugfixes in protocol
* adds geo types
v0.7.0 2016-05-05
=====================
new features
* 100% crystal, using crystal's native async io (no longer using libpq)
* each Connection#exec form can take a block, and stream the rows as they
come in. This does not store any rows in memory and is very fast.
* adds #on_notification for listen/notify support
incompatable changes:
* Result.each now yields the entire row and an array of fields
* The notice callback now yields an entire
* Error classes have changed, some removed
* "db_name" changed to "dbname" in hash #initialize to match postgres
* on_notice callback gets an object instead of just a string
v0.6.1 2016-05-15
====================
* fix shard.yml
v0.6.0 2016-05-04
====================
* Adds Adds on_notice callback (thanks @radiospiel)
* Adds PG::Numeric for numeric/decimal support
* Note: this will be the last release that links LibPQ
v0.5.0 2015-12-21
====================
* Adds Result#each which allows to map a PG result to a struct or class,
avoiding temporary memory structures (thanks @ysbaddaden)
* Connection#exec is now async (thanks @ysbaddaden)
v0.4.3 2015-10-21
====================
* Support for byta (thanks @jhass)
* `Connection`s can be made with a hash of params (thanks @tebakane)
* Support Crystal 0.9.0 and bytea encoding fix (thanks @technorama)
v0.4.2 2015-09-29
====================
* fix UUIDs to have appropriate dashes
v0.4.1 2015-09-29
====================
* Fix UUID type
v0.4.0 2015-09-19
====================
* Fix and require Crystal 0.8.0
* Allow #to_hash with typed querying interface (thanks @werner)
v0.3.2 2015-08-28
====================
* Connection#exec_all (thanks @solisoft)
* BUGFIX: bigint and smallint were broken since v0.3.0
v0.3.1 2015-08-25
====================
* BUGFIX: previous release would give wrong reults under --release
* 3x fater again on time parsing, total ~10x faster than text format
v0.3.0 2015-08-24
====================
* switch to much faster binary result format (time parsing 3.4x faster than text)
* decoders are now pluggable with PG::Decoder.register_decoder
v0.2.0 2015-07-25
====================
* Add Connection#escape_literal and Connection#escape_identifier
v0.1.0 2015-06-14
====================
* first named version using crystal shards