Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
upsert / CHANGELOG
Size: Mime:
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