-
Notifications
You must be signed in to change notification settings - Fork 77
/
CHANGELOG
265 lines (146 loc) · 7.23 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
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
-- no version -- / 2019-06-05
* Enhancements
* Bump development Ruby version to 2.5 since Ruby 2.2 is no longer supported.
This should not affect usage of the gem, only local development for people
working *on* the gem. Ruby 2.2 is also not dropped from Upsert compatibility
at this time but you should consider upgrading to newer Ruby versions anyway.
2.2.1 / 2017-04-20
* Bug fixes
* Fix unique constraint detection on pg >9.5.5 (@pnomolos https://github.com/seamusabshere/upsert/pull/99)
* Fix Ruby 1.9 tests
2.2.0 / 2017-04-14
* Enhancements
* Use native "upsert" on Postgres 9.5+! (thanks to @pnomolos https://github.com/seamusabshere/upsert/pull/79)
* More modern CI tests
2.1.2 / 2016-02-25
* Enhancements
* Test on Ruby 2.3 - thanks @Ch4s3 https://github.com/seamusabshere/upsert/pull/70
* Bug fixes
* Stop using Thread.exclusive - thanks @hpetru https://github.com/seamusabshere/upsert/pull/67
2.1.1 / 2016-02-12
* Enhancements
* Assume function exists to avoid huge amounts of recreation
2.1.0 / 2015-03-13
* Bug fixes
* Thread safety with Sidekiq! thanks @evadne and @thbar ! https://github.com/seamusabshere/upsert/pull/47
* Known issues
* speed_spec fails against activerecord-import on mysql... need some advice on properly testing it
2.0.4 / 2015-01-27
* Bug fixes
* Support mysql returning column info as symbols - thanks @pnomolos
* Enhancements
* Travis and misc test fixes - thanks @raviolicode
* Backwards compat with 1.8 - thanks @raviolicode
2.0.3 / 2013-11-27
* Bug fixes
* Add parentheses to equality expressions
* Enhancements
* On Postgres, use (A = B OR (A IS NULL AND B IS NULL)) instead of A IS NOT DISTINCT FROM B because the latter does not use indexes
* pass :eager_nullify => false as the third argument to Upsert#row to disable clearing of null HStore keys
2.0.2 / 2013-11-06
* Bug fixes
* Properly check for NULL equality when creating the UPSERT functions - thanks @pnomolos - https://github.com/seamusabshere/upsert/issues/25
* When using Mysql2 client (MRI), don't pass timezone to DateTime columns - thanks @kjeremy! - https://github.com/seamusabshere/upsert/issues/24
2.0.1 / 2013-07-24
* Bug fixes
* Rookie mistake - gsub!'ed an input arg, sorry. Blew up on a frozen string, thank goodness.
2.0.0 / 2013-07-24
* Breaking changes
* For Postgres Hstore, null keys are deliberately deleted - so there's no way to set "foo" => NULL - "foo" will just get deleted as a key
* Name merge functions "upsert1_2_0" instead of "upsert_"
1.2.0 / 2013-04-04
* Breaking changes
* columns named "created_at" and "created_on" will only be set if it's a new row - thanks @derekharmel! https://github.com/seamusabshere/upsert/pull/15
* Enhancements
* Detect invalid columns passed in either selector or setter - inspired by @atandrau, thanks! https://github.com/seamusabshere/upsert/issues/18
* Bug fixes
* Always convert symbols to strings when used as bind vars - thanks @towerhe! - https://github.com/seamusabshere/upsert/pull/16
1.1.7 / 2013-01-15
* Enhancements
* :assume_function_exists option to avoid creating same merge function over and over
* Don't die on first occurrence of "tuple concurrently updated"
1.1.6 / 2012-12-20
* Bug fixes
* Require pg-hstore >=1.1.1 which doesn't escape single quotes and backslashes when output is going to be used in a bind variable (as it is here)
1.1.5 / 2012-12-10
* Bug fixes
* Properly cast "timestamp without time zone" in postgres - thanks @markmarijnissen! https://github.com/seamusabshere/upsert/issues/11
1.1.4 / 2012-12-06
* Enhancements
* Use latest pg-hstore gem with standardized namespace
1.1.3 / 2012-12-06
* Bug fix
* Don't die/fail trying to update an HStore column that has reverted to NULL.
1.1.2 / 2012-12-06
* Enhancements
* Support for PostgreSQL's HStore
1.1.1 / 2012-12-03
* Bug fixes
* Removed inadvertent dependency on ActiveSupport - thanks @thbar! https://github.com/seamusabshere/upsert/issues/10
1.1.0 / 2012-11-26
* Enhancements
* Works on JRuby using bare-metal JDBC!
* Simplified.
1.0.2 / 2012-11-12
* Bug fixes
* Fix filenames - they were updated on an apparently case-insensitive setup. Thanks @ihough! (https://github.com/seamusabshere/upsert/pull/8)
* Deliberately drop MySQL procedures before creating them. Also thanks to @ihough!
1.0.1 / 2012-11-07
* Bug fixes
* Fix incorrect gem description
1.0.0 / 2012-11-07
* Breaking changes (well, not really)
* Not using INSERT ... ON DUPLICATE KEY UPDATE for MySQL!
* Enhancements
* Replaced ON DUPLICATE KEY with a true merge function (procedure)
* Simplified code - buffering is no longer used anywhere
* Clarified documentation
* Bug fixes
* MySQL upserts won't fail if you have a multi-key selector and no multi-column UNIQUE index to cover them (https://github.com/seamusabshere/upsert/issues/6)
0.5.0 / 2012-09-21
* Breaking changes (well, not really)
* "document" (as in the second argument to #row) has been renamed to "setter"!
* Bug fixes
* If you say upsert({:name => 'Jerry', :color => 'red'}), make sure that it only affects rows really meeting those conditions
* Always sort selector and setter keys - i.e., column names - before doing anything with them
* Support PostgreSQL 9.1+
* Support MRI 1.8
* Enhancements
* Slightly faster benchmarks for SQlite3 and MySQL
* Slightly slower on PostgreSQL (probably because the merge function requires more arguments), but more accurate
* Slightly clearer code structure
* Use bind parameters instead of quoting for PostgreSQL and SQLite3.
* Provide Upsert.clear_database_functions(connection) (currently only for PostgreSQL)
* Don't subclass String for Upset::Binary... hopefully save some strcpy()s?
0.4.0 / 2012-09-04
* Bug fixes
* Don't raise TooBig - rely on Mysql2 to complain about oversized packets
* Enhancements
* Re-use PostgreSQL merge functions across connections, even outside of batch mode. Huzzah!
* For MySQL, increase speed for one-off upserts by not checking packet size
* Allow configuring Upsert.logger. Defaults to Rails.logger or Logger.new($stderr). If you set env var UPSERT_DEBUG=true then it will set log level to debug.
0.3.4 / 2012-07-03
* Bug fixes
* Allow upserting by auto-increment primary key (thanks @atandrau https://github.com/seamusabshere/upsert/issues/3)
* Enhancements
* Make setter an optional argument
0.3.3 / 2012-06-26
* Bug fixes
* Properly quote table names - don't assume that everybody has ANSI_QUOTES turned on in MySQL :)
0.3.2 / 2012-06-22
* Enhancements
* Make sure ::PGconn is recognized as ::PG::Connection (thanks @joevandyk https://github.com/seamusabshere/upsert/issues/2)
0.3.1 / 2012-06-21
* Bug fixes
* On PostgreSQL, stop nullifying columns that weren't even involved in the upsert
* On SQLite, properly join WHERE conditions with ' AND ' instead of ','
0.3.0 / 2012-06-21
* Enhancements
* Remove all the sampling - just keep a cumulative total of sql bytes as we build up an ON DUPLICATE KEY UPDATE query.
* Deprecate Upsert.stream in favor of Upsert.batch (but provide an alias for backwards compat)
0.2.2 / 2012-06-21
* Bug fixes
* Correct and simplify how sql length is calculated when batching MySQL upserts.
0.2.1 / 2012-06-21
* Enhancements
* Added support for Ruby 1.8.7