aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #18543 from henrik/integer_limit_or_defaultYves Senn2015-01-151-2/+6
|\ | | | | Tiny: DRY default limit in ActiveRecord::Type::Integer
| * DRY default limit in ActiveRecord::Type::IntegerHenrik Nyh2015-01-151-2/+6
| |
* | Remove incorrect comment in ActiveRecord::Type::ValueHenrik Nyh2015-01-151-2/+1
|/ | | | | | | Says it's only used for the schema, but they are in fact used for other things. Integer verifies against the limit during casting, and Decimal uses precision during casting. It may be true that scale is only used for the schema.
* [ci skip] fix typo sill -> stillAditya Kapoor2015-01-151-1/+1
|
* Merge pull request #18537 from jrnk/patch-1Zachary Scott2015-01-151-1/+1
|\ | | | | Fix Typo SecureToken for schema sample [ci skip]
| * Fix Typo SecureToken for schema sample [ci skip]Jeroen K.2015-01-151-1/+1
| |
* | Time columns should support time zone aware attributesSean Griffin2015-01-154-5/+47
|/ | | | | | The types that are affected by `time_zone_aware_attributes` (which is on by default) have been made configurable, in case this is a breaking change for existing applications.
* Only use the `_before_type_cast` in the form when from user inputSean Griffin2015-01-142-0/+13
| | | | | | While we don't want to change the form input when validations fail, blindly using `_before_type_cast` will cause the input to display the wrong data for any type which does additional work on database values.
* Go through normal where logic in destroy with lockingSean Griffin2015-01-141-6/+2
| | | | | | Building the Arel AST, and manipulating the relation manually like this is prone to errors and breakage as implementation details change from underneath it.
* Go through normal where logic in destroySean Griffin2015-01-141-9/+1
| | | | | | Building the Arel AST, and manipulating the relation manually like this is prone to errors and breakage as implementation details change from underneath it.
* Don't default to YAML dumping when quoting valuesSean Griffin2015-01-142-3/+8
| | | | | | | This behavior exists only to support fixtures, so we should handle it there. Leaving it in `#quote` can cause very subtle bugs to slip through, by things appearing to work when they should be blowing up loudly, such as #18385.
* Merge pull request #18478 from ↵Sean Griffin2015-01-131-1/+2
|\ | | | | | | | | yoshiokatsuneo/active_record_connection_pool_error_disconnect ActiveRecord: On reconnection failure, release only failed connetion.
| * ActiveRecord: On reconnection failure, release only failed connetion.Yoshioka Tsuneo2015-01-131-1/+2
| | | | | | | | | | | | | | On reconnection failure, all the connection was released. But, it is better to release only failed connection. This patch changes not to release all the connection but release only failed connection.
* | Add Secure Token Generatorrobertomiranda2015-01-113-0/+11
| |
* | Deprecate passing a column to `quote`Sean Griffin2015-01-101-0/+6
| | | | | | | | | | It's only used to grab the type for type casting purposes, and we would like to remove the type from the columns entirely.
* | Stop passing a column to `quote` when finding by AR modelsSean Griffin2015-01-101-5/+2
| | | | | | | | | | | | | | I'm planning on deprecating the column argument to mirror the deprecation in [arel]. [arel]: https://github.com/rails/arel/commit/6160bfbda1d1781c3b08a33ec4955f170e95be11
* | Stop passing a column to `quote` when executing from a statement cacheSean Griffin2015-01-101-2/+2
| | | | | | | | | | | | | | I'm planning on deprecating the column argument to mirror the deprecation in [arel]. [arel]: https://github.com/rails/arel/commit/6160bfbda1d1781c3b08a33ec4955f170e95be11
* | Stop passing a column to `quote` in `Relation#to_sql`Sean Griffin2015-01-101-2/+3
| | | | | | | | | | | | | | I'm planning on deprecating the column argument to mirror the deprecation in [arel]. [arel]: https://github.com/rails/arel/commit/6160bfbda1d1781c3b08a33ec4955f170e95be11
* | Stop passing a column to `quote` when prepared statements are turned offSean Griffin2015-01-102-4/+5
| | | | | | | | | | | | | | I'm planning on deprecating the column argument to mirror the deprecation in [arel]. [arel]: https://github.com/rails/arel/commit/6160bfbda1d1781c3b08a33ec4955f170e95be11
* | Fix Typo SecureToken [ci skip]Roberto Miranda2015-01-101-1/+1
| |
* | Stop passing a column to `quote` in `insert_fixture`Sean Griffin2015-01-102-4/+14
| | | | | | | | | | | | | | I'm planning on deprecating the column argument to mirror the deprecation in [arel]. [arel]: https://github.com/rails/arel/commit/6160bfbda1d1781c3b08a33ec4955f170e95be11
* | Stop special casing null binary data in loggingSean Griffin2015-01-101-2/+2
| | | | | | | | | | | | There's very little value in logging "<NULL binary data>" instead of just "nil". I'd like to remove the column from the equation entirely, and this case is preventing us from doing so.
* | Don't attempt to save dirty attributes which are not persistableSean Griffin2015-01-102-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This sets a precident for how we handle `attribute` calls, which aren't backed by a database column. We should not take this as a conscious decision on how to handle them, and this can change when we make `attribute` public if we have better ideas in the future. As the composed attributes API gets fleshed out, I expect the `persistable_attributes` method to change to `@attributes.select(&:persistable).keys`, or some more performant variant there-of. This can probably go away completely once we fully move dirty checking into the attribute objects once it gets moved up to Active Model. Fixes #18407
* | Fix typo in PostresSQLAdapter's documentationSebastian Staudt2015-01-101-1/+1
| |
* | Remove support for the protected attributes gemCarlos Antonio da Silva2015-01-091-10/+2
| | | | | | | | Related to #10690.
* | Switch Secure Token generation to Base58robertomiranda2015-01-091-18/+8
| | | | | | | | | | | | Update Secure Token Doc [ci skip] remove require securerandom, core_ext/securerandom already do that ref 7e006057
* | Copy records to parent transaction should happen on TransactionManagerArthur Neves2015-01-091-3/+3
| | | | | | | | It is up to the TransactionManager keep the state of current transaction, so after it commits it needs to copy any remaning record to the next current transaction
* | Use keyword args on committed! and rolledback!Arthur Neves2015-01-092-5/+5
| | | | | | | | As discussed before, those methods should receive a keyword args instead of just parameters
* | Properly copy nested bind values from subqueried relationsSean Griffin2015-01-091-3/+1
| | | | | | | | | | | | | | | | | | | | | | This is cropping up all over the place. After a brief dive, I'm really not sure why we have `arel.bind_values` at all. A cursory grep didn't reveal where they're actually being assigned (it's definitely in AR, not in Arel). I'd like to dig further into it, as I'm fairly certain we don't actually need it, we just need a way for the predicate builder to communicate merged binds upstream. Fixes #18414
* | Properly persist `lock_version` as 0 if the DB has no defaultSean Griffin2015-01-091-5/+9
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | The reason this bug occured is that we never actually check to see if this column has changed from it's default, since it was never assigned and is not mutable. It appears I was wrong in b301c40224c6d15b539dbcc7485adb44d810f88c, with my statement of "there is no longer a case where a given value would differ from the default, but would not already be marked as changed." However, I chose not to revert the deletion of `initialize_internals_callback` from that commit, as I think a solution closer to where the problem lies is less likely to get erroneously removed. I'm not super happy with this solution, but it mirrors what is being done in `_update_record`, and a fix for one should work for the other. I toyed with the idea of changing the definition of `changed?` on the type to `changed_in_place?`. If we type cast the raw value, it'll break a test about updating not modifying the lock column if nothing else was changed. We could have the definition check if `raw_old_value` is `nil`, but this feels fragile and less intention revealing. It would, however, have the benefit of cleaning up old data that incorrectly persisted as `nil`. Fixes #18422
* ActiveRecord: release connection on reconnect failure.Yoshioka Tsuneo2015-01-091-0/+3
| | | | | | | | | | | | | | | | | | When trying to checkout connection from connection pool, checkout()(and checkout_and_verify) verify whether the connection is active or not. And, if the connection is not active, connection adapters try to reconnect to server. And, if database is down at this moment, reconnect fails and exception is raised. (Ex: Mysql2::Error: Can't connect to local MySQL server through socket xxx) But, ConnectionPool does not catch the exception, but leaks current disconnected connection to @connection. So, if database's temporary down happens several times and exceeds the number of connection pool(5 by default), activerecord will be no more available, even if database server is already recovered. This patch fix it by catching exception and releasing connection.
* Document has_many :extend optionCaleb Thompson2015-01-081-0/+4
| | | | https://github.com/rails/rails/commit/5937bd02dee112646469848d7fe8a8bfcef5b4c1#commitcomment-9205786
* Merge pull request #16640 from mfazekas/fix_loop_in_changed_for_autosaveGodfrey Chan2015-01-071-4/+11
|\ | | | | Fix potenital infinite recursion in changed_for_autosave?
| * Fix potenital stack level too deep with autosave or validationMiklos Fazkeas2015-01-041-4/+11
| | | | | | | | | | | | | | When associations checked for autosave have a cycle, and none of them is dirty, then changed_for_autosave? will be an infinite loop. We now remember if we're in the check and will short circuit the recursion.
* | Fix count on a separate connection (fixes #18359)brainopia2015-01-081-1/+1
| | | | | | | | | | | | | | | | Previosly count and other AR calculations would convert column_name_for_operation to sql on a default Arel::Table.engine (AR::Base) connection. That could lead to trouble if current model has a connection to a different adapter or Base connection is inaccessible.
* | fix `attribute` method scoping(i.e. private)Kuldeep Aggarwal2015-01-061-3/+1
| | | | | | | | ref #52f641264b1325a4c2bdce7971b14524bd4905f1
* | Merge pull request #18362 from georgemillo/attributeRafael Mendonça França2015-01-061-3/+2
|\ \ | | | | | | replacing 'attribute' method with an alias
| * | replacing 'attribute' method with an aliasGeorge Millo2015-01-061-3/+2
| | |
* | | Fix lookup of fixtures with non-string labelPrathamesh Sonpatki2015-01-061-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | - Fixtures with non-string labels such as integers should be accessed using integer label as key. For eg. pirates(1) or pirates(42). - But this results in NotFound error because the label is converted into string before looking up into the fixtures hash. - After this commit, the label is converted into string only if its a symbol. - This issue was fount out while adding a test case for https://github.com/rails/rails/commit/7b910917.
* | Merge pull request #18350 from brainopia/fix_build_from_bind_valuesSean Griffin2015-01-051-1/+3
|\ \ | | | | | | Propagate bind_values from join in subquery
| * | Correctly fetch bind_values from join in subquerybrainopia2015-01-061-1/+3
| | |
* | | Define attribute methods before attempting to populate recordsSean Griffin2015-01-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | `initialize_internals_callback` will attempt to assign attributes from the current scope, which will fail if something defined the method and calls super (meaning it won't hit `method_missing`). Fixes #18339
* | | Merge pull request #18349 from jdelStrother/primarykeylessSean Griffin2015-01-051-1/+1
|\ \ \ | |/ / |/| | Fix rollback of primarykey-less tables
| * | Fix rollback of primarykey-less tablesJonathan del Strother2015-01-051-1/+1
| | | | | | | | | If you have a table without a primary key, and an `after_commit` callback on that table (ie `has_transactional_callbacks?` returns true), then trying to rollback a transaction involving that record would result in “ActiveModel::MissingAttributeError: can't write unknown attribute ``”
* | | Fix TypeError in Fixture creationMatt Hogan2015-01-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ruby 4.2 started doing `value.gsub('$LABEL', label)` for fixture label interpolation, but you can have have valid YAML where `label` isn't a String. For example: ```YAML 0: name: John email: johndoe@gmail.com 1: name: Jane email: janedoe@gmail.com ``` This YAML will create a label that is a Fixnum, causing `TypeError: no implicit conversion of Fixnum into String.`
* | | remove deprecated support to preload instance-dependent associaitons.Yves Senn2015-01-051-6/+3
| | | | | | | | | | | | Addresses https://github.com/rails/rails/commit/ed56e596a0467390011bc9d56d462539776adac1#commitcomment-9145960
* | | remove deprecated support for PG ranges with exclusive lower bounds.Yves Senn2015-01-051-10/+1
| | | | | | | | | | | | addresses https://github.com/rails/rails/commit/91949e48cf41af9f3e4ffba3e5eecf9b0a08bfc3#commitcomment-9144563
* | | remove deprecation warning when modifying a Relation with cached arel.Yves Senn2015-01-051-21/+14
| |/ |/| | | | | This adresses https://github.com/rails/rails/commit/1b7aa62b184c4410c99208f71b59bbac5c5f03be#commitcomment-9147803
* | remove files which is dependent on ruby1.9 as we do not support Ruby1.9Kuldeep Aggarwal2015-01-042-44/+24
| | | | | | | | | | Conflicts: activerecord/lib/active_record/attribute_methods/read.rb
* | Merge pull request #18217 from robertomiranda/has_secure_tokenDavid Heinemeier Hansson2015-01-043-0/+51
|\ \ | | | | | | Add has_secure_token to Active Record