1. 10 5月, 2013 4 次提交
    • J
      32a5cad1
    • D
      Don't try to EXPLAIN select_db calls · 1cc63e94
      Daniel Schierbeck 提交于
      1cc63e94
    • B
      Fix that #exists? can produce invalid SQL: "SELECT DISTINCT DISTINCT" · 15d6e4dc
      Ben Woosley 提交于
      The combination of a :uniq => true association and the #distinct call
      in #construct_limited_ids_condition combine to create invalid SQL, because
      we're explicitly selecting DISTINCT, and also sending #distinct on to AREL,
      via the relation#distinct_value.
      
      Rather than build a select distinct clause in #construct_limited_ids_condition,
      I set #distinct! and pass just the columns into the select statement.
      This requires introducing a #columns_for_distinct method to return the
      select columns but not the statement itself.
      15d6e4dc
    • J
      Set the inverse when association queries are refined · d7abe91c
      Jon Leighton 提交于
      Suppose Man has_many interests, and inverse_of is used.
      
      Man.first.interests.first.man will correctly execute two queries,
      avoiding the need for a third query when Interest#man is called. This is
      because CollectionAssociation#first calls set_inverse_instance.
      
      However Man.first.interests.where("1=1").first.man will execute three
      queries, even though this is obviously a subset of the records in the
      association.
      
      This is because calling where("1=1") spawns a new Relation object from
      the CollectionProxy object, and the Relation has no knowledge of the
      association, so it cannot set the inverse instance.
      
      This commit solves the problem by making relations spawned from
      CollectionProxies return a new Relation subclass called
      AssociationRelation, which does know about associations. Records loaded
      from this class will get the inverse instance set properly.
      
      Fixes #5717.
      
      Live commit from La Conf! 
      d7abe91c
  2. 09 5月, 2013 1 次提交
    • N
      extracted piece of code into a method · fdba949b
      Neeraj Singh 提交于
      In order to fix #10421 I need to enable merge to take an option
      so that relations could be merged without making the last where
      condition to win.
      
      That fix would forever reside in 4-0-stable branch and would not be
      merged to master since using scope without lambda has been deprecated.
      
      In this commit I have extracted code into a method and I think it
      makes code look better. Hence the request to merge it in both
      master and 4-0-stable.
      
      If there is any concern then this code can be merged only in
      4-0-stable and that would be fine too.
      fdba949b
  3. 08 5月, 2013 4 次提交
  4. 07 5月, 2013 7 次提交
  5. 05 5月, 2013 2 次提交
  6. 04 5月, 2013 2 次提交
    • B
    • A
      Squashed commit of the following: · 4c242e6d
      Aaron Patterson 提交于
      commit 2683de5da85135e8d9fe48593ff6167db9d64b18
      Author: Aaron Patterson <aaron.patterson@gmail.com>
      Date:   Fri May 3 11:29:20 2013 -0700
      
          cannot support infinite ranges right now
      
      commit cebb6acef2c3957f975f6db4afd849e535126253
      Author: Aaron Patterson <aaron.patterson@gmail.com>
      Date:   Fri May 3 11:26:12 2013 -0700
      
          reverting infinity comparison
      
      commit 385f7e6b4efd1bf9b89e8d607fcb13e5b03737ea
      Author: Aaron Patterson <aaron.patterson@gmail.com>
      Date:   Fri May 3 11:23:28 2013 -0700
      
          Revert "Added ability to compare date/time with infinity"
      
          This reverts commit 38f28dca.
      
          Conflicts:
          	activesupport/CHANGELOG.md
          	activesupport/lib/active_support/core_ext/numeric/infinite_comparable.rb
          	activesupport/test/core_ext/date_ext_test.rb
          	activesupport/test/core_ext/date_time_ext_test.rb
          	activesupport/test/core_ext/numeric_ext_test.rb
          	activesupport/test/core_ext/time_ext_test.rb
          	activesupport/test/core_ext/time_with_zone_test.rb
      
      commit 0d799a188dc12b18267fc8421675729917610047
      Author: Aaron Patterson <aaron.patterson@gmail.com>
      Date:   Fri May 3 11:18:53 2013 -0700
      
          Revert "Refactor infinite comparable definition a bit"
      
          This reverts commit dd3360e0.
      
      commit 42dec90e49745bbfae546f0560b8783f6b48b074
      Author: Aaron Patterson <aaron.patterson@gmail.com>
      Date:   Fri May 3 11:18:47 2013 -0700
      
          Revert "Require 'active_support/core_ext/module/aliasing' in the infinite_comparable module"
      
          This reverts commit 7003e71c.
      4c242e6d
  7. 03 5月, 2013 3 次提交
    • O
      Do not overwrite manually built records during one-to-one nested attribute assignment · 534030cf
      Olek Janiszewski 提交于
      For one-to-one nested associations, if you build the new (in-memory)
      child object yourself before assignment, then the NestedAttributes
      module will not overwrite it, e.g.:
      
          class Member < ActiveRecord::Base
            has_one :avatar
            accepts_nested_attributes_for :avatar
      
            def avatar
              super || build_avatar(width: 200)
            end
          end
      
          member = Member.new
          member.avatar_attributes = {icon: 'sad'}
          member.avatar.width # => 200
      534030cf
    • J
      Fix broken mysql test · 66982772
      Jon Leighton 提交于
      test_mysql_integer_not_null_defaults in test/cases/defaults_test.rb was
      failing. This test relies on the connection being in strict mode. By
      default a new connection is not in strict mode, but Active Record
      automatically places it in strict mode.
      
      ActiveSchemaTest overwrites the connection's #execute method in order to
      prevent SQL statements from actually being executed. One of the
      operations which is performed in ActiveSchema test is a #recreate_database.
      
      Since 2088bf27, recreate_database on
      mysql or mysql2 will trigger a reconnect.
      
      Due to the implementation of the hacking of #execute in
      ActiveSchemaTest, this reconnect would take place, but the connection
      would *not* be placed in strict mode because #execute had been
      overridden to prevent SQL queries hitting the database.
      
      Therefore, after ActiveSchemaTest, the connection would no longer be in
      strict mode, causing test_mysql_integer_not_null_defaults to fail.
      
      I don't think that the way that ActiveSchemaTest is implemented is
      particularly nice or clean, but I have taken steps to make its hacks
      more isolated - it now create a separate connection object which is
      thrown away after the test, and the hacks are applied on the singleton
      class of this object.
      66982772
    • L
      Add parameter :sslcompression to PostgreSQL adapter. · 950ef055
      Lars Kanis 提交于
      It is new in PostgreSQL-9.2 .
      950ef055
  8. 02 5月, 2013 7 次提交
  9. 01 5月, 2013 6 次提交
  10. 30 4月, 2013 3 次提交
  11. 29 4月, 2013 1 次提交