aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/cases
Commit message (Collapse)AuthorAgeFilesLines
...
* Revert "`belongs_to :touch` behavior now touches old association when ↵David Heinemeier Hansson2013-04-231-26/+0
| | | | transitioning to new association" until a proper fix is found for #10197
* When empty options passed to having clause having_values was [nil] but ↵Fyodor2013-04-231-0/+8
| | | | should be empty.
* Merge pull request #10295 from senny/10237_dirty_with_nullable_datetimeCarlos Antonio da Silva2013-04-221-3/+5
|\ | | | | Also assign nil in dirty nullable_datetime test. Closes #10237
| * also assign nil in dirty nullable_datetime test. #10237Yves Senn2013-04-221-3/+5
| |
* | Update counter cache when pushing into associationMatthew Robertson2013-04-211-0/+9
|/ | | | | | | | | | | | | | | | This commit fixes a regression bug in which counter_cache columns were not being updated correctly when newly created records were being pushed into an assocation. EG: # this was fine @post.comment.create! # this was fine @comment = Comment.first @post.comments << @comment # this would not update counters @post.comments << Comment.create!
* if singletons belong to the contract, test themXavier Noria2013-04-201-1/+4
| | | | | | Object#respond_to? returns singletons and thus we inherit that contract. The implementation of the predicate is good, but the test is only checking boolean semantics, which in this case is not enough.
* fix respond_to? for non selected columnNeeraj Singh2013-04-191-0/+5
| | | | | | | | | | | | | | | | | | | | | | | fixes #4208 If a query selects only a few columns and gives custom names to those columns then respond_to? was returning true for the non selected columns. However calling those non selected columns raises exception. post = Post.select("'title' as post_title").first In the above case when `post.body` is invoked then an exception is raised since `body` attribute is not selected. Howevere `respond_to?` did not behave correctly. pos.respond_to?(:body) #=> true Reason was that Active Record calls `super` to pass the call to Active Model and all the columns are defined on Active Model. Fix is to actually check if the data returned from the db contains the data for column in question.
* Revert "Merge pull request #10183 from jholton/fix_association_auto_save"Jon Leighton2013-04-191-14/+0
| | | | | | | This reverts commit e8727d37fc49d5bf9976c3cb5c46badb92cf4ced, reversing changes made to d098e1c24bc145e0cc14532348436e14dc46d375. Reason: it broke the mysql build
* destroys association records before saving/inserting new association recordsJohnny Holton2013-04-191-0/+14
| | | | | | | | | | | | | | | | | | | | | fixes bug introduced by #3329 These are the conditions necessary to reproduce the bug: - For an association, autosave => true. - An association record is being destroyed - A new association record is being created. - There is a unique index one of the association's fields. - The record being created has the same value as the record being destroyed on the indexed field. Before, the deletion of records was postponed until after all insertions/saves. Therefore the new record with the identical value in the indexed field caused a non-unique value error to be thrown at the database level. With this fix, the deletions happen first, before the insertions/saves. Therefore the record with the duplicate value is gone from the database before the new record is created, thereby avoiding the non-uniuqe value error.
* Merge pull request #10264 from cconstantine/masterRafael Mendonça França2013-04-191-0/+6
|\ | | | | Postgresql array columns don't properly escape single quote strings when loading fixtures
| * Fix loading of fixtures when the column type is a postgres array of strings.Chris Constantine2013-04-181-0/+6
| | | | | | | | - A string in an array of strings that has a quote char (') needs to have that quote char escaped if the array is getting wrapped in quote chars.
* | Improve the error messageRafael Mendonça França2013-04-191-1/+1
| |
* | Merge pull request #10217 from mirasrael/make-migrator-run-transactional-4.0Rafael Mendonça França2013-04-191-0/+26
|\ \ | | | | | | | | | | | | | | | | | | Support transactions in Migrator.run Conflicts: activerecord/CHANGELOG.md
| * | Support transactions in Migrator.runbondarev2013-04-181-0/+26
| | |
* | | Merge pull request #10200 from ↵Jon Leighton2013-04-191-0/+7
|\ \ \ | |_|/ |/| | | | | | | | calebthompson/ct-fix-freeze-freezing-cloned-models Fix freeze applying to cloned objects
| * | Fix freeze applying to cloned objectsCaleb Thompson2013-04-151-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, freezing a cloned ActiveRecord object froze the original too. By cloning `@attributes` before freezing, we prevent cloned objects (which in Ruby share state of ivars) from being effected by `#freeze`. Resolves issue #4936, which has further information on this issue, as well as steps to reproduce. * Add a test case for `#freeze` not causing `cloned.frozen?` to be true. * Clone @attributes before freezing in `ActiveRecord::Core`, then reassign the cloned, frozen hash to the frozen model's `@attributes` ivar. /cc @steveklabnik
* | | Revert "Merge pull request #10043 from cconstantine/master"Rafael Mendonça França2013-04-181-6/+0
| | | | | | | | | | | | | | | | | | | | | This reverts commit 521035af530482d6d9ad2dae568eaeb0ab188e1c, reversing changes made to 222011dbee842bbc60d3aaaa3145356b90a30fd1. Reason: This broke the tests
* | | Merge pull request #10043 from cconstantine/masterRafael Mendonça França2013-04-181-0/+6
|\ \ \ | | | | | | | | DB with postgres string array column doesn't load fixtures well
| * | | Fix loading of string arrays in postgresChris Constantine2013-04-081-0/+6
| | | |
* | | | let EXPLAIN use a thread locals registry [John J. Wang & Xavier Noria]Xavier Noria2013-04-162-37/+29
| | | | | | | | | | | | | | | | Closes #10198.
* | | | Fix #7619. 0x prefix must be added when assigning hexadecimal string into ↵kennyj2013-04-171-1/+7
| |/ / |/| | | | | | | | bit column in Postgresql, because solving ambiguity.
* | | Revert "fixing bit string test"kennyj2013-04-161-3/+3
| | | | | | | | | | | | | | | | | | This reverts commit cdd293cb963b895ff580eb20d10f5d56ecb3d447. Reason: This wasn't properly fix.
* | | fix for the bytea/binary nil value bugMatt Aimonetti2013-04-141-1/+1
| | |
* | | added a test suite for the postgres binary typeMatt Aimonetti2013-04-141-0/+87
| |/ |/| | | | | this shows a problem with nil values
* | hides the per thread registry instance, and caches singleton methodsXavier Noria2013-04-131-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | Existing code was delegating to the instance with delegate macro calls, or invoking the instance method to reach the object and call its instance methods. But the point is to have a clean class-level interface where the thread local instance is hidden in the implementation. References #11c6973. References #10198.
* | Merge pull request #10177 from ↵Carlos Antonio da Silva2013-04-111-1/+1
|\ \ | | | | | | | | | | | | yahonda/test_relation_merging_with_merged_joins_oracle Address ORA-00979: not a GROUP BY expression error
| * | Address ORA-00979: not a GROUP BY expression errorYasuo Honda2013-04-111-1/+1
| | |
* | | cleanup statement cache testVipul A M2013-04-111-4/+4
|/ /
* | Merge pull request #10152 from Noemj/statement_cacheRafael Mendonça França2013-04-101-0/+64
|\ \ | | | | | | | | | | | | | | | | | | Statement cache Conflicts: activerecord/CHANGELOG.md
| * | Added statement cacheNoemj2013-04-101-0/+64
| | |
* | | Revert "Merge pull request #6226 from gnufied/master"Rafael Mendonça França2013-04-101-32/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 9bf1a0db4acbbf9e8e6f707250269185224e7efe, reversing changes made to fed97091b9546d369a240d10b184793d49247dd3. Conflicts: activerecord/test/cases/transaction_callbacks_test.rb Reason: This fix introduces another issue described at #8937, so we are reverting it to restore the behavior of 3-2-stable. We will fix both issues when we come out with a better solution
* | | While merging relations preserve context for joinsJared Armstrong and Neeraj Singh2013-04-101-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes #3002. Also see #5494. ``` class Comment < ActiveRecord::Base belongs_to :post end class Author < ActiveRecord::Base has_many :posts end class Post < ActiveRecord::Base belongs_to :author has_many :comments end ``` `Comment.joins(:post).merge(Post.joins(:author).merge(Author.where(:name => "Joe Blogs"))).all` would fail with `ActiveRecord::ConfigurationError: Association named 'author' was not found on Comment`. It is failing because `all` is being called on relation which looks like this after all the merging: `{:joins=>[:post, :author], :where=>[#<Arel::Nodes::Equality: ....}`. In this relation all the context that `Post` was joined with `Author` is lost and hence the error that `author` was not found on `Comment`. Ths solution is to build JoinAssociation when two relations with join information are being merged. And later while building the arel use the previously built `JoinAssociation` record in `JoinDependency#graft` to build the right from clause. Thanks to Jared Armstrong (https://github.com/armstrjare) for most of the work. I ported it to make it compatible with new code base.
* | | Changed the ScopeRegistry and the InstrumentationRegistry to use thewangjohn2013-04-091-2/+2
| | | | | | | | | | | | PerThreadRegistry module.
* | | Grouping thread locals in the ActiveRecord scopes so that thewangjohn2013-04-081-2/+2
| |/ |/| | | | | | | current_scope and ignore_default_scope locals are brought together under a registry object.
* | each to each_value; remove unused varsVipul A M2013-04-071-2/+2
| |
* | Removed space and unused classAnupam Choudhury2013-04-062-2/+1
| |
* | Removed unnecessary classAnupam Choudhury2013-04-061-1/+0
| |
* | Merge pull request #10098 from subwindow/postgres_dump_bigint_defaultRafael Mendonça França2013-04-051-0/+5
|\ \ | | | | | | | | | | | | | | | | | | Correctly parse bigint defaults in PostgreSQL Conflicts: activerecord/CHANGELOG.md
| * | Correctly parse bigint defaults in PostgreSQLErik Peterson2013-04-051-0/+5
| | |
* | | Merge pull request #9996 from mikz/masterJon Leighton2013-04-051-0/+16
|\ \ \ | | | | | | | | Association with inverse_of does not set the parent in association building block
| * | | fix inverse_of association in block of new childMichal Cichra2013-04-011-0/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes inconsistency when building children of association which has inverse_of set properly. When creating new association object with a block: parent.association.build do |child| child.parent.equal?(parent) # false end So the block the `child.parent` did not point to the same object. But when the object is created it points to same instance: child = parent.association.build child.parent.equal?(parent) # true
* | | | Fix scope chaining + STIJon Leighton2013-04-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See #9869 and #9929. The problem arises from the following example: class Project < ActiveRecord::Base scope :completed, -> { where completed: true } end class MajorProject < Project end When calling: MajorProject.where(tasks_count: 10).completed This expands to: MajorProject.where(tasks_count: 10).scoping { MajorProject.completed } However the lambda for the `completed` scope is defined on Project. This means that when it is called, `self` is Project rather than MajorProject. So it expands to: MajorProject.where(tasks_count: 10).scoping { Project.where(completed: true) } Since the scoping was applied on MajorProject, and not Project, this fails to apply the tasks_count condition. The solution is to make scoping apply across STI classes. I am slightly concerned about the possible side-effects of this, but no tests fail and it seems ok. I guess we'll see.
* | | | failing test for #9869Neeraj Singh2013-04-051-0/+5
| | | |
* | | | Improve `belongs_to touch: true` timestamp testAndrew White2013-04-051-7/+21
| |/ / |/| | | | | | | | | | | | | | Round off time to a whole second value to compensate for databases that don't support fractional timestamps. Also add a assertion to check that the old record is touched when the association is cleared.
* | | Use inspect when writing the foreign key from the reflectionAndrew White2013-04-051-0/+6
| | | | | | | | | | | | | | | | | | If we don't use inspect inside the class_eval block then the foreign key is written without quotes causing us to fetch the foreign key value and not the column name.
* | | has_many through obeys order on through associationNeeraj Singh2013-04-042-2/+8
| | | | | | | | | | | | fixes #10016
* | | Remove duplicated require from AR base testCarlos Antonio da Silva2013-04-031-1/+0
| | |
* | | Add missing require to inheritance testCarlos Antonio da Silva2013-04-031-1/+1
| | |
* | | Merge pull request #9141 from adamgamble/issue-9091David Heinemeier Hansson2013-04-031-0/+26
|\ \ \ | | | | | | | | belongs_to :touch should touch old record when transitioning.
| * | | Modifies belong_to touch callback to touch old associations also #9091Adam Gamble2013-03-141-10/+2
| | | |