aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord
Commit message (Collapse)AuthorAgeFilesLines
* Better support for `where()` conditions that use an association name.Martin Emde2013-12-163-3/+104
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Using the name of an association in `where` previously worked only if the value was a single `ActiveRecrd::Base` object. e.g. Post.where(author: Author.first) Any other values, including `nil`, would cause invalid SQL to be generated. This change supports arguments in the `where` query conditions where the key is a `belongs_to` association name and the value is `nil`, an `Array` of `ActiveRecord::Base` objects, or an `ActiveRecord::Relation` object. # Given the Post model class Post < ActiveRecord::Base belongs_to :author end # nil value finds records where the association is not set Post.where(author: nil) # SELECT "posts".* FROM "posts" WHERE "posts"."author_id" IS NULL # Array values find records where the association foreign key # matches the ids of the passed ActiveRecord models, resulting # in the same query as Post.where(author_id: [1,2]) authors_array = [Author.find(1), Author.find(2)] Post.where(author: authors_array) # ActiveRecord::Relation values find records using the same # query as Post.where(author_id: Author.where(last_name: "Emde")) Post.where(author: Author.where(last_name: "Emde")) Polymorphic `belongs_to` associations will continue to be handled appropriately, with the polymorphic `association_type` field added to the query to match the base class of the value. This feature previously only worked when the value was a single `ActveRecord::Base`. class Post < ActiveRecord::Base belongs_to :author, polymorphic: true end Post.where(author: Author.where(last_name: "Emde")) # Generates a query similar to: Post.where(author_id: Author.where(last_name: "Emde"), author_type: "Author")
* Fix missing closing rdoc tag [ci skip]Carlos Antonio da Silva2013-12-161-1/+1
|
* Merge pull request #13307 from akshay-vishnoi/typoRafael Mendonça França2013-12-151-2/+2
|\ | | | | Spelling and Grammar check [ci skip]
| * Spelling and Grammar check [ci skip]Akshay Vishnoi2013-12-161-2/+2
| |
* | Improve CHANGELOG entry with examples [ci skip]Rafael Mendonça França2013-12-151-0/+10
| |
* | Merge pull request #13313 from ccutrer/temp-tablesRafael Mendonça França2013-12-158-17/+83
|\ \ | | | | | | | | | | | | | | | | | | support creating temporary tables from queries Conflicts: activerecord/CHANGELOG.md
| * | support creating temporary tables from queriesCody Cutrer2013-12-148-17/+83
| | | | | | | | | | | | | | | also override drop_table in AbstractMySQLAdapter to properly drop temporary tables without committing the transaction
* | | Improve the CHANGELOG entry [ci skip]Rafael Mendonça França2013-12-151-3/+3
| | |
* | | db:test:clone and prepare must load environmentArthur Neves2013-12-142-3/+9
|/ / | | | | | | | | | | db:test:clone and db:test:prepare use ActiveRecord::Base. configurations, so we need to load the rails environment, otherwise the config wont be in place.
* | argument prefix warning removedArun Agrawal2013-12-131-1/+1
| | | | | | | | * interpreted as a argument prefix
* | Merge pull request #13306 from kassio/masterRafael Mendonça França2013-12-132-4/+9
|\ \ | | | | | | Fix mysql to support duplicated column names
| * | Fix mysql to support duplicated column namesKassio Borges2013-12-132-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will fix the [broken test](https://github.com/rails/rails/commit/4a2650836680f51490e999c3c8441a2f9adff96e) `test_with_limiting_with_custom_select`. The query's result was built in a hash with column name as key, if the result have a duplicated column name the last value was overriding the first one.
* | | refactor, reuse assertions in range_test.rb.Yves Senn2013-12-131-186/+111
| | |
* | | extract PG range tests from datatype_test.rb into range_test.rbYves Senn2013-12-133-296/+321
|/ /
* | Add a bunch of Relation -> Array delegate methods to the whitelist. This ↵Jeremy Kemper2013-12-122-32/+26
| | | | | | | | won't last - aim to switch back to a blacklist for mutator methods.
* | Merge pull request #12590 from laurocaetano/whitelist-to-delegate-array-methodsRafael Mendonça França2013-12-124-104/+105
|\ \ | | | | | | Create a whitelist of methods to be delegated to Array.
| * | Use `public_send` instead of just use `send`.Lauro Caetano2013-12-122-9/+9
| | |
| * | Use a whitelist to delegate methods to arrayLauro Caetano2013-12-122-75/+38
| | |
| * | Add changeloglaurocaetano2013-12-121-6/+15
| | |
| * | Remove delegation test.laurocaetano2013-12-121-17/+46
| | | | | | | | | | | | | | | This test was removed, since Relation will not delegate class methods to Array.
* | | extract cache counter logic to one methodAaron Patterson2013-12-121-11/+10
| | |
* | | remove duplicate codeAaron Patterson2013-12-121-15/+6
| | |
* | | extract a method for updating without a record objectAaron Patterson2013-12-121-6/+10
| | |
* | | extract methods out of the cache update methodAaron Patterson2013-12-121-14/+22
| | |
* | | pull a nil check up one frameAaron Patterson2013-12-121-6/+10
|/ /
* | remove more nil checksAaron Patterson2013-12-121-6/+5
| |
* | remove nil checkAaron Patterson2013-12-122-7/+11
| | | | | | | | | | calling replace_keys could possibly do a nil check twice, this commit reduces it to once.
* | remove the nil check from set_inverse_instanceAaron Patterson2013-12-124-4/+7
| | | | | | | | | | methods that call set_inverse_instance with a record will not have to pay the cost of a nil check on every call
* | make sure cached table name is a string. fixes #12582Aaron Patterson2013-12-123-1/+12
| |
* | Merge pull request #13293 from akshay-vishnoi/typoCarlos Antonio da Silva2013-12-122-5/+5
|\| | | | | Spelling and Grammar checks [ci skip]
| * Spelling and Grammar checksAkshay Vishnoi2013-12-122-5/+5
| |
* | Merge pull request #13291 from strzibny/new_unique_constraintYves Senn2013-12-121-1/+5
|\ \ | |/ |/| Translate new unique constraint error message for sqlite >= 3.8.2
| * Translate new unique constraint for sqlite >= 3.8.2Josef Stribny2013-12-121-1/+5
| |
* | Get rid of hack for freezing time on AR testsCarlos Antonio da Silva2013-12-122-23/+5
| | | | | | | | | | We can now make use of the existent #travel/#travel_to helper methods added to AS test case and available in all tests.
* | Changelog improvements [ci skip]Carlos Antonio da Silva2013-12-121-7/+7
| |
* | Merge pull request #13264 from ↵Rafael Mendonça França2013-12-113-2/+16
|\ \ | | | | | | | | | | | | laurocaetano/fix_dynamic_finder_with_reserved_words Prevent invalid code when using dynamic finders with reserved ruby word.
| * | Prevent invalid code when using dynamic finders with Ruby's reserved words.Lauro Caetano2013-12-113-2/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The dynamic finder was creating the method signature with the parameters name, which may have reserved words and this way creating invalid Ruby code. Closes: #13261 Example: # Before Dog.find_by_alias('dog name') # Was creating this method def self.find_by_alias(alias, options = {}) # After Dog.find_by_alias('dog name') # Will create this method def self.find_by_alias(_alias, options = {})
* | | Move the parameter normalization to the initialize methodRafael Mendonça França2013-12-111-4/+5
| | | | | | | | | | | | | | | activerecord-deprecated_finders expects the parameters denormalized in its initialize method
* | | Revert the whole refactoring in the association builder classes.Rafael Mendonça França2013-12-118-47/+64
| | | | | | | | | | | | This is to get activerecord-deprecated_finders work again
* | | Mark the arguments needed by activerecord-deprecated_finders with a TODORafael Mendonça França2013-12-114-2/+20
| | |
* | | Revert "Merge pull request #12518 from vipulnsward/remove_count_options"Rafael Mendonça França2013-12-115-17/+20
| | | | | | | | | | | | | | | | | | | | | It is needed for activerecord-depecated_finders This reverts commit dcff027a5242b20c0c90eb062dddb22ccf51aed9, reversing changes made to 3a2093984ff49d86db1efeff0c7581e788ecfb9f.
* | | Bring back the valid_options class accessorRafael Mendonça França2013-12-116-9/+14
|/ / | | | | | | It is need in activerecord-deprecated_finders
* | Merge pull request #13236 from jetthoughts/13230_type_cast_bug_in_agr_functionsYves Senn2013-12-103-1/+23
|\ \ | | | | | | Fix type cast on group sum with custom expression
| * | Fix type cast on group sum with custom expressionPaul Nikitochkin2013-12-103-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | For PG adapters with custom expression and grouped result of aggregate functions have not found correct column type for it. Extract column type from query result. Closes: #13230
* | | Fix warnings on mysql2 explain testCarlos Antonio da Silva2013-12-101-3/+3
| | |
* | | Merge pull request #13248 from yahonda/support_mysql573_explainJeremy Kemper2013-12-091-3/+3
|\ \ \ | | | | | | | | Support MySQL 5.7 explain
| * | | Support MySQL 5.7 explainYasuo Honda2013-12-101-3/+3
| |/ /
* / / Remove `DEFAULT NULL` for primary key column to support MySQL 5.7.3Yasuo Honda2013-12-103-7/+7
|/ / | | | | | | Since MySQL 5.7.3 m13 does now allow primary key column is null.
* | fix typo, "state_state" should be "stale_state" [ci skip]Scott M2013-12-071-1/+1
| |
* | Very tiny typo fix [ci skip]Robin Dupret2013-12-061-1/+1
| |