aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test
Commit message (Collapse)AuthorAgeFilesLines
* Fix handling of dirty time zone aware attributesLilibeth De La Cruz2013-02-171-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 (cherry picked from commit bc982cbcb34129ea2cfe8aa1f8e0b40e444e68db) Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/attribute_methods/time_zone_conversion.rb Backport of #9073 Fixes #8898
* Revert "Merge pull request #9252 from senny/8423_hmt_preloading_bug"Rafael Mendonça França2013-02-151-6/+0
| | | | | | | This reverts commit c5451777b038c5e48567f69256986ae42a2cde48. Conflicts: activerecord/CHANGELOG.md
* Merge pull request #9252 from senny/8423_hmt_preloading_bugRafael Mendonça França2013-02-141-0/+6
| | | | | | | don't cache invalid subsets when preloading hmt associations Conflicts: activerecord/CHANGELOG.md activerecord/test/cases/associations/eager_test.rb
* backport of fix for issue #7630Matthew Robertson2013-02-131-0/+11
|
* Fix test failure for ruby 1.8.Dylan Smith2013-02-081-1/+1
| | | | BigDecimal.new needs to take a string rather than an integer in ruby 1.8.
* active_record: Quote numeric values compared to string columns.Dylan Smith2013-02-074-10/+37
|
* This pull requests addresses ORA-01400 errors and also supports #6115 issue ↵Yasuo Honda2013-02-031-1/+1
| | | | | | | | | tested. Issue #6115 has been fixed and tested with the attribute `:null => false, :default => ""` However `:null => false` attribute is not necessary to test this issue, which causes many ORA-01400 errors with Oracle enhanced adapter.
* Duplicate column_defaults properlyPiotr Sarnacki2013-02-032-1/+8
| | | | | | | | | | Backport c517602 to fix #6115 Deleted: activerecord/lib/active_record/core.rb Conflicts: activerecord/test/cases/base_test.rb
* Merge pull request #9078 from senny/6865_ar_count_with_uniqRafael Mendonça França2013-02-021-0/+4
| | | | | | `#count` in conjunction with `#uniq` performs distinct count. Conflicts: activerecord/CHANGELOG.md
* Fix pluck when columns/tables are reserved words.Ian Lesperance2013-01-233-2/+16
| | | | | | | | | Backport #7536 to fix #8968. Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/relation/calculations.rb
* Merge pull request #6197 from ↵Xavier Noria2013-01-221-0/+10
| | | | | | blakesmith/connection_adapters_without_explain_support Don't run explain on slow queries for database adapters that don't support it
* Revert "Merge pull request #6986 from kennyj/fix_6975"Andrew White2013-01-221-15/+0
| | | | | | | | | This reverts commit 8905c1fb496641c3cdb7b3b816ae6d3d4b2c2b73. Closes #8460 Conflicts: activerecord/test/cases/dirty_test.rb
* Add failing test case for #8460Andrew White2013-01-221-0/+14
| | | | Add a test case to ensure that fractional second updates are detected.
* Revert "Merge pull request #7983 from georgebrock/bug7950-squashed"Carlos Antonio da Silva2013-01-151-7/+0
| | | | | | | | | | | This reverts commit 88a296dccc401da143d90cad54b693ff06bf2b58, reversing changes made to 666a7e34f553cef4c8878362eafc79c7e3f310c3. Conflicts: activerecord/CHANGELOG.md Reason: this has been resulting in some hard to track bugs and is introducing a possible breackage in a stable version.
* Revert "Merge pull request #7661 from ernie/build-join-records-on-unsaved-hmt"Ernie Miller2013-01-111-5/+0
| | | | | | | This reverts commit ee439895759b38431ad025f3c234831f30dadcdb. It would appear that #7661 had unintended consequences to the API. Until we can sort those out, this should not be in 3.2.x, and wait for 4.0.0.
* Ignore binds payload with nil column in AR log subscriberYasuo Honda2013-01-091-12/+22
| | | | | | | | | | | | | | | | | | | | | | Some tests were raising the following error: Could not log "sql.active_record" event. NoMethodError: undefined method `type' for nil:NilClass` Due to the way binds were being logged, the column info was considered always present, but that is not true for some of the tests listed in the issue. Closes #8806. Conflicts: activerecord/lib/active_record/log_subscriber.rb activerecord/test/cases/log_subscriber_test.rb Conflict resolution: - Revert ruby 1.9 style hash to support ruby 1.8 - Do not include 8f59ffce into 3-2-stable
* Merge branch '3-2-sec' into 3-2-secmergeAaron Patterson2013-01-081-1/+15
|\ | | | | | | | | | | | | | | | | | | | | | | | | * 3-2-sec: bumping version CVE-2013-0156: Safe XML params parsing. Doesn't allow symbols or yaml. * Strip nils from collections on JSON and XML posts. [CVE-2013-0155] * dealing with empty hashes. Thanks Damien Mathieu Avoid Rack security warning no secret provided Conflicts: actionpack/CHANGELOG.md activerecord/CHANGELOG.md activesupport/CHANGELOG.md
| * * Strip nils from collections on JSON and XML posts. [CVE-2013-0155] * ↵Aaron Patterson2013-01-081-1/+15
| | | | | | | | dealing with empty hashes. Thanks Damien Mathieu
* | Remove not used variable in eager testCarlos Antonio da Silva2013-01-071-1/+0
| |
* | Test only with Ruby 1.9+Rafael Mendonça França2013-01-061-4/+6
| |
* | Remove warningsRafael Mendonça França2013-01-061-2/+1
| |
* | Fix error when assigning NaN to an integer columnTristan Harward2013-01-061-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also covers any non-castable case by returning nil, which is in-line with the intention of the former implementation, but covers the odd cases which respond to to_i but raise an error when it's called, such as NaN, Infinity and -Infinity. Fixes #8757 Backport of #8781 Conflicts: activerecord/CHANGELOG.md activerecord/test/cases/column_test.rb
* | Fix undefined method `to_i' introduced since 3.2.8Jason Stirk2013-01-042-7/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit fixes a bug introduced in 96a13fc7 which breaks behaviour of integer fields in 3.2.8. In 3.2.8, setting the value of an integer field to a non-integer (eg. Array, Hash, etc.) would default to 1 (true) : # 3.2.8 p = Post.new p.category_id = [ 1, 2 ] p.category_id # => 1 p.category_id = { 3 => 4 } p.category_id # => 1 In 3.2.9 and above, this will raise a NoMethodError : # 3.2.9 p = Post.new p.category_id = [ 1, 2 ] NoMethodError: undefined method `to_i' for [1, 2]:Array Whilst at first blush this appear to be sensible, it combines in bad ways with scoping. For example, it is common to use scopes to control access to data : @collection = Posts.where(:category_id => [ 1, 2 ]) @new_post = @collection.new In 3.2.8, this would work as expected, creating a new Post object (albeit with @new_post.category_id = 1). However, in 3.2.9 this will cause the NoMethodError to be raised as above. It is difficult to avoid triggering this error without descoping before calling .new, breaking any apps running on 3.2.8 that rely on this behaviour. This patch deviates from 3.2.8 in that it does not retain the somewhat spurious behaviour of setting the attribute to 1. Instead, it explicitly sets these invalid values to nil : p = Post.new p.category_id = [ 1, 2 ] p.category_id # => nil This also fixes the situation where a scope using an array will "pollute" any newly instantiated records. @new_post = @collection.new @new_post.category_id # => nil Finally, 3.2.8 exhibited a behaviour where setting an object to an integer field caused it to be coerced to "1". This has not been retained, as it is spurious and surprising in the same way that setting Arrays and Heshes was : c = Category.find(6) p = Post.new # 3.2.8 p.category_id = c p.category_id # => 1 # This patch p.category_id = c p.category_id # => nil This commit includes explicit test cases that expose the original issue with calling new on a scope that uses an Array. As this is a common situation, an explicit test case is the best way to prevent regressions in the future. It also updates and separates existing tests to be explicit about the situation that is being tested (eg. AR objects vs. other objects vs. non-integers)
* | Merge branch '3-2-sec' into 3-2-secmergeAaron Patterson2012-12-231-0/+12
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 3-2-sec: CVE-2012-5664 options hashes should only be extracted if there are extra parameters updating changelog updating the changelogs updating the changelog for the CVE Add release date of Rails 3.2.9 to documentation Conflicts: actionmailer/CHANGELOG.md actionpack/CHANGELOG.md activemodel/CHANGELOG.md activerecord/CHANGELOG.md activeresource/CHANGELOG.md activesupport/CHANGELOG.md railties/CHANGELOG.md
| * CVE-2012-5664 options hashes should only be extracted if there are extra ↵Aaron Patterson2012-12-231-0/+12
| | | | | | | | parameters
* | Serialized attribute can be serialized in an integer columnRafael Mendonça França2012-12-213-2/+32
| | | | | | | | | | | | | | | | | | | | Fix #8575 Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/attribute_methods/serialization.rb activerecord/test/cases/serialized_attribute_test.rb activerecord/test/models/person.rb
* | Backport #8522, Keep index names when using with sqlite3Yves Senn2012-12-191-0/+12
| | | | | | | | | | | | | | | | Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/connection_adapters/sqlite3_adapter.rb activerecord/test/cases/migration/rename_column_test.rb
* | recognize migrations, in folders containing numbers and 'rb'.Yves Senn2012-12-132-0/+17
| | | | | | | | | | | | | | | | | | Backport of #8500 Closes #8492 Conflicts: activerecord/test/cases/migrator_test.rb
* | Improve test name related to cache timestamp format [ci skip]Carlos Antonio da Silva2012-12-111-1/+1
| |
* | Add :nsec format only for Ruby 1.9Carlos Antonio da Silva2012-12-111-0/+4
| | | | | | | | | | | | Ruby 1.8 does not support this format in Time, so the format will only be added to the available date formats on Ruby 1.9. Changelog entry was changed to explain that as well.
* | Run backported serialized test without Identity MapCarlos Antonio da Silva2012-12-111-2/+4
| | | | | | | | | | | | It fails with Identity Map because the find call returns the same object, so the "content" attribute that we expect to raise "missing attribute" is actually present.
* | Use 1.8 hash style :bomb:Carlos Antonio da Silva2012-12-111-2/+2
| |
* | Merge pull request #8441 from itzki/fix_decorate_columnsCarlos Antonio da Silva2012-12-111-0/+13
| | | | | | | | | | Backport test to ensure there won't be regressions. The issue only happens on master at the moment.
* | Allow users to choose the timestamp format in the cache keyRafael Mendonça França2012-12-102-1/+15
| | | | | | | | | | | | This can be done using the class attribute cache_timestamp_format Closes #8195
* | Make sure the tests pass in the case closer to described in #8195Rafael Mendonça França2012-12-104-19/+14
| |
* | Merge pull request #6376 from jgaskins/timestamp-microsecondsJeremy Kemper2012-12-101-1/+1
| | | | | | | | | | | | Increase numeric-timestamp precision to nanoseconds Conflicts: activesupport/lib/active_support/core_ext/time/conversions.rb
* | Added regression test for #8195.jacobstr2012-12-101-0/+18
| |
* | Remove warning of unused variableRafael Mendonça França2012-12-101-1/+1
| |
* | Unscope update_column(s) query to ignore default scopeCarlos Antonio da Silva2012-12-061-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When applying default_scope to a class with a where clause, using update_column(s) could generate a query that would not properly update the record due to the where clause from the default_scope being applied to the update query. class User < ActiveRecord::Base default_scope where(active: true) end user = User.first user.active = false user.save! user.update_column(:active, true) # => false In this situation we want to skip the default_scope clause and just update the record based on the primary key. With this change: user.update_column(:active, true) # => true Backport of #8436 fix. Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/persistence.rb activerecord/test/cases/persistence_test.rb
* | backport #8403, no intermediate AR objects when eager loading.Yves Senn2012-12-042-0/+15
| | | | | | | | | | | | | | | | | | Closes #3313 Conflicts: activerecord/CHANGELOG.md activerecord/test/models/developer.rb
* | Merge pull request #4942 from bogdan/pluck_joinsJosé Valim2012-12-031-0/+10
| | | | | | | | | | | | | | | | AR::Relation#pluck: improve to work with joins Conflicts: activerecord/lib/active_record/relation/calculations.rb activerecord/test/cases/calculations_test.rb
* | Merge pull request #7689 from cbarton/assume_migration_version_with_prefix_fixAaron Patterson2012-11-281-8/+28
|\ \ | | | | | | Fixing a schema:load when using a prefix and suffix on the tables [Reopen/backport]
| * | Making test accurately reflect what is going on in the schema migrations testChris Barton2012-09-181-8/+28
| | |
* | | Use 1.8 hash style in pg specific schemaCarlos Antonio da Silva2012-11-281-3/+3
| | |
* | | Merge pull request #8311 from alisdair/dirty-nullable-datetimeCarlos Antonio da Silva2012-11-251-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't call will_change! for datetime nil->"". Setting a nil datetime attribute to a blank string should not cause the attribute to be dirty. Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/attribute_methods/time_zone_conversion.rb
* | | backport #8291, prevent mass assignment of polymorphic type with `build`Yves Senn2012-11-221-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | Closes #8265 Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/associations/association.rb
* | | Merge pull request #8276 from pwnall/pgsql_text_limitsRafael Mendonça França2012-11-202-0/+23
| | | | | | | | | | | | | | | | | | | | | Postgresql doesn't accepts limits on text columns Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/connection_adapters/postgresql/schema_statements.rb
* | | Merge pull request #8258 from kommen/eager_loading_with_select_test2Carlos Antonio da Silva2012-11-191-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add test to ensure preloading works as expected with "group", "select" and "includes". Conflicts: activerecord/test/cases/relations_test.rb Chery-pick a739340d3c9e66814429af6f3f410c01ff86810a: Ensure ordering to make the test pass with postgresql Conflicts: activerecord/test/cases/relations_test.rb
* | | Merge pull request #7983 from georgebrock/bug7950-squashedCarlos Antonio da Silva2012-11-161-0/+7
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backport 4bc2ae0 to fix #7950 Conflicts: activerecord/CHANGELOG.md activerecord/lib/active_record/relation/calculations.rb
| * | | Test/changelog for has_many bug on unsaved recordsGeorge Brocklehurst2012-11-101-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | See issue #7950. The previous commit fixes this bug, and is a backport of 4bc2ae0da1dd812aee759f6d13ad428354cd0e13.