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