1. 29 1月, 2013 1 次提交
  2. 28 1月, 2013 2 次提交
    • A
      Use Encoding::UTF_8 constant 🚯 · 5f30b547
      Akira Matsuda 提交于
      5f30b547
    • J
      Prevent Relation#merge from collapsing wheres on the RHS · c8d88990
      Jon Leighton 提交于
      This caused a bug with the new associations implementation, because now
      association conditions are represented as Arel nodes internally right up
      to when the whole thing gets turned to SQL.
      
      In Rails 3.2, association conditions get turned to raw SQL early on,
      which prevents Relation#merge from interfering.
      
      The current implementation was buggy when a default_scope existed on the
      target model, since we would basically end up doing:
      
        default_scope.merge(association_scope)
      
      If default_scope contained a where(foo: 'a') and association_scope
      contained a where(foo: 'b').where(foo: 'c') then the merger would see
      that the same column is representated on both sides of the merge and
      collapse the wheres to all but the last: where(foo: 'c')
      
      Now, the RHS of the merge is left alone.
      
      Fixes #8990
      c8d88990
  3. 27 1月, 2013 2 次提交
    • D
      Fix cases where delete_records on a has_many association caused errors · 0a71c7b8
      Derek Kraan 提交于
      because of an ambiguous column name. This happened if the association
      model had a default scope that referenced a third table, and the third
      table also referenced the original table (with an identical
      foreign_key).
      
      Mysql requires that ambiguous columns are deambiguated by using the full
      table.column syntax. Postgresql and Sqlite use a different syntax for
      updates altogether (and don't tolerate table.name syntax), so the fix
      requires always including the full table.column and discarding it later
      for Sqlite and Postgresql.
      0a71c7b8
    • L
      Fix handling of dirty time zone aware attributes · bc982cbc
      Lilibeth De La Cruz 提交于
      Previously, when `time_zone_aware_attributes` were enabled, after
      changing a datetime or timestamp attribute and then changing it back
      to the original value, `changed_attributes` still tracked the
      attribute as changed. This caused `[attribute]_changed?` and
      `changed?` methods to return true incorrectly.
      
      Example:
      
          in_time_zone 'Paris' do
            order = Order.new
            original_time = Time.local(2012, 10, 10)
            order.shipped_at = original_time
            order.save
            order.changed? # => false
      
            # changing value
            order.shipped_at = Time.local(2013, 1, 1)
            order.changed? # => true
      
            # reverting to original value
            order.shipped_at = original_time
            order.changed? # => false, used to return true
          end
      bc982cbc
  4. 26 1月, 2013 1 次提交
  5. 25 1月, 2013 2 次提交
  6. 24 1月, 2013 9 次提交
  7. 23 1月, 2013 3 次提交
    • A
      Remove warning by using a custom coder · 1b75b94d
      Andrew White 提交于
      The native JSON library bypasses the `to_json` overrides in
      active_support/core_ext/object/to_json.rb by calling its native
      implementation directly. However `ActiveRecord::Store` uses a
      HWIA so `JSON.dump` will call our `to_json` instead with a
      `State` object for options rather than a `Hash`. This generates
      a warning when the `:encoding`, `:only` & `:except` keys are
      accessed in `Hash#as_json` because the `State` object delegates
      unknown keys to `instance_variable_get` in its `:[]` method.
      
      Workaround this warning in the test by using a custom coder that
      calls `ActiveSupport::JSON.encode` directly.
      1b75b94d
    • B
      Add postgresql range types support · af1ef85a
      bUg 提交于
      af1ef85a
    • A
      A test case name needs to start with "test_" · 4beb4dec
      Akira Matsuda 提交于
      4beb4dec
  8. 22 1月, 2013 9 次提交
  9. 21 1月, 2013 2 次提交
  10. 20 1月, 2013 4 次提交
  11. 18 1月, 2013 4 次提交
  12. 16 1月, 2013 1 次提交
    • V
      Don't rely on Hash key's ordering · e1e5f300
      Vitor Baptista 提交于
      If we set encoding latin1 for a PostgreSQL database, it calls
      PostgreSQLAdapter::create_database with options that have,
      among other things:
      
        { 'encoding' => 'latin1' }
      
      Then, we use reverse_merge(:encoding => "utf8") to setup the default
      encoding. In the end, the hash looks like:
      
        { :encoding => 'utf8', 'encoding' => 'latin1' }
      
      The call to options.symbolize_keys calls to_sym on each_key of this
      Hash. It usually means that the encoding passed overwrites the default
      utf8, but it's not guaranteed. So, we shouldn't rely on it.
      
      The same was happening in ActiveRecord::ConnectionHandling.
      e1e5f300