aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
* Create a blacklist to disallow mutator methods to be delegated to `Array`.Lauro Caetano2013-12-171-11/+14
| | | | | | | | This change was necessary because the whitelist wouldn't work. It would be painful for users trying to update their applications. This blacklist intent to prevent odd bugs and confusion in code that call mutator methods directely on the `Relation`.
* MySQL: remove the old-school 'packets out of order' messageJeremy Kemper2013-12-171-6/+0
| | | | Blast from the past, MySQL 4 era, when the password hashing style changed.
* Better support for `where()` conditions that use an association name.Martin Emde2013-12-161-3/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| |
* | Merge pull request #13313 from ccutrer/temp-tablesRafael Mendonça França2013-12-155-17/+38
|\ \ | | | | | | | | | | | | | | | | | | support creating temporary tables from queries Conflicts: activerecord/CHANGELOG.md
| * | support creating temporary tables from queriesCody Cutrer2013-12-145-17/+38
| | | | | | | | | | | | | | | also override drop_table in AbstractMySQLAdapter to properly drop temporary tables without committing the transaction
* | | db:test:clone and prepare must load environmentArthur Neves2013-12-141-3/+2
|/ / | | | | | | | | | | 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
* | Fix mysql to support duplicated column namesKassio Borges2013-12-131-3/+8
| | | | | | | | | | | | | | | | | | | | 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.
* | Add a bunch of Relation -> Array delegate methods to the whitelist. This ↵Jeremy Kemper2013-12-121-4/+12
| | | | | | | | 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-121-23/+11
|\ \ | | | | | | Create a whitelist of methods to be delegated to Array.
| * | Use `public_send` instead of just use `send`.Lauro Caetano2013-12-121-5/+5
| | |
| * | Use a whitelist to delegate methods to arrayLauro Caetano2013-12-121-18/+6
| | |
* | | 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-121-1/+1
| |
* | 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
| |
* | Merge pull request #13264 from ↵Rafael Mendonça França2013-12-111-2/+7
|\ \ | | | | | | | | | | | | 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-111-2/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-117-46/+62
| | | | | | | | | | | | 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-114-16/+19
| | | | | | | | | | | | | | | | | | | | | 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-101-1/+3
|\ \ | | | | | | Fix type cast on group sum with custom expression
| * | Fix type cast on group sum with custom expressionPaul Nikitochkin2013-12-101-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Remove `DEFAULT NULL` for primary key column to support MySQL 5.7.3Yasuo Honda2013-12-101-1/+1
|/ / | | | | | | 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
| |
* | _enum_methods_module should be kept privateGodfrey Chan2013-12-051-6/+7
| |
* | Make clear that the enum array should not be changed once defined. [ci skip]Godfrey Chan2013-12-051-1/+12
| |
* | fix pg warnings on geometric typesAaron Patterson2013-12-051-10/+23
| |
* | Use the right type_mapRafael Mendonça França2013-12-052-5/+3
| |
* | polymorphic belongs_to association with touch: true updates old record correctlySeverin Schoepke2013-12-051-1/+7
| | | | | | | | | | | | | | | | | | Example: Given you have a comments model with a polymorphic commentable association (e.g. books and songs) with the touch option set. Every time you update a comment its commentable should be touched. This was working when you changed attributes on the comment or when you moved the comment from one book to another. However, it was not working when moving a comment from a book to a song. This is now fixed.
* | make the type_map per connection. fixes #13182Aaron Patterson2013-12-042-12/+17
| |
* | Merge pull request #12403 from thedarkone/attr-method-missing-fixRafael Mendonça França2013-12-041-1/+18
|\ \ | | | | | | | | | | | | | | | | | | Fix AR#method_missing re-dispatching into overwritten attribute methods Conflicts: activerecord/lib/active_record/attribute_methods.rb
| * | Fix AR#method_missing re-dispatching into overwritten attribute methods.thedarkone2013-09-291-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This was happening when a `super` call in an overwritten attribute method was triggering a method_missing fallback, because attribute methods haven't been generated yet. class Topic < ActiveRecord::Base def title # `super` would re-invoke this method if define_attribute_methods # hasn't been called yet resulting in double '!' appending super + '!' end end
* | | Merge pull request #12462 from jjb/improve_ar_exception_message_formattingCarlos Antonio da Silva2013-12-031-8/+15
|\ \ \ | | | | | | | | Improve formatting of ActiveRecord migration exception messages
| * | | ActiveRecord migration exception message formattingJohn Joseph Bachir2013-12-031-8/+15
| | | |