Skip to content

Migrating from 1.2.x to 1.3.0

Karol Bucek edited this page Aug 22, 2013 · 8 revisions

While the 1.3 release is meant to be compatible with 1.2 as much as possible (that's why it's not called 2.0 although it truly deserves it :) there are a few places where things might have changed. Usually this is for the better to fix old unwanted behaviour and/or ActiveRecord compatibility.

In ActiveRecord 3.1 methods such as exec_query, exec_insert and exec_update where added, on AR-JDBC side support for them only meant delegating to what's been available already (mostly execute). Thus in 1.2 exec_query returns Array results for all versions of ActiveRecord. Since 1.3 this is changed and for ActiveRecord >= 3.1 we return ActiveRecord::Result objects (which if used properly might behave like enumerable Arrays but one does need to be aware of the differences and not assume they're instances of Array)

Derby

When setting non-string values for string/text columns the adapter does a bit of quoting to make sure the database does not vomit. Some of the quoting logic was a bit surprising and seemed redundant esp. since 1.3 supports prepared statements thus things got changed, namely :

  • for true/false values to_s will be called, previously they were "quoted" into '0'/'1' values
  • for non-numeric, non-boolean, non-string and date-like objects (e.g. Hash-es) 1.2 does to_yaml while 1.3 simply calls to_s

Clone this wiki locally