aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* | | Merge pull request #10217 from mirasrael/make-migrator-run-transactional-4.0Rafael Mendonça França2013-04-191-5/+12
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Support transactions in Migrator.run Conflicts: activerecord/CHANGELOG.md
| * | | Support transactions in Migrator.runbondarev2013-04-181-5/+12
| | |/ | |/|
* | | Merge pull request #10200 from ↵Jon Leighton2013-04-191-2/+4
|\ \ \ | |_|/ |/| | | | | | | | calebthompson/ct-fix-freeze-freezing-cloned-models Fix freeze applying to cloned objects
| * | Fix freeze applying to cloned objectsCaleb Thompson2013-04-151-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-15/+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/+15
|\ \ \ | | | | | | | | DB with postgres string array column doesn't load fixtures well
| * | | Fix loading of string arrays in postgresChris Constantine2013-04-081-0/+15
| | | |
* | | | Merge pull request #10258 from thenickcox/pending_migrations_pluralRafael Mendonça França2013-04-181-3/+3
|\ \ \ \ | | | | | | | | | | Fix subject-verb agreement in error msg (and other grammar stuff)
| * | | | Fix subject-verb agreement in error msg (and other grammar stuff)thenickcox2013-04-171-3/+3
| | | | |
* | | | | add :nodoc: mark to *Registry classes [ci skip]Francesco Rodriguez2013-04-172-4/+4
| | | | |
* | | | | let EXPLAIN use a thread locals registry [John J. Wang & Xavier Noria]Xavier Noria2013-04-163-9/+41
| | | | | | | | | | | | | | | | | | | | Closes #10198.
* | | | | Fix #7619. 0x prefix must be added when assigning hexadecimal string into ↵kennyj2013-04-171-2/+4
| | | | | | | | | | | | | | | | | | | | bit column in Postgresql, because solving ambiguity.
* | | | | Use db:test:load instead of db:test:load_schemaPiotr Sarnacki2013-04-161-1/+1
| |_|/ / |/| | | | | | | | | | | | | | | | | | | | | | | db:test:load task should be favored over db:test:load_schema, because it checks for chosen format (ActiveRecord::Base.schema_format). closes #10227
* | | | Add OID::Bit for supporting bit string.kennyj2013-04-162-2/+19
| | | |
* | | | Merge pull request #10214 from mattetti/ar_postgres_byteaRafael Mendonça França2013-04-151-0/+1
|\ \ \ \ | | | | | | | | | | AR postgres binary bug fix
| * | | | fix for the bytea/binary nil value bugMatt Aimonetti2013-04-141-0/+1
| | |_|/ | |/| |
* / | | Document collection.create! on has_many associations in ActiveRecordMario Visic2013-04-151-0/+4
|/ / /
* | | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2013-04-132-7/+7
|\ \ \
| * | | fix :nodoc: mark on AR::AttributeMethods::Serialization [ci skip]Francesco Rodriguez2013-04-121-2/+2
| | | |
| * | | minor edit on StatementCache documentation [ci skip]Francesco Rodriguez2013-04-121-1/+1
| | | |
| * | | Fix StatementCache docs format [ci skip]Francesco Rodriguez2013-04-111-5/+5
| | | |
* | | | hides the per thread registry instance, and caches singleton methodsXavier Noria2013-04-131-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | removes calls to AR::Runtime.instanceXavier Noria2013-04-133-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Registries have class-level accessors to write clean code, let's use them. This makes style uniform also with existing usage in ScopeRegistry and InstrumentationRegistry. If performance of the method_missing callback was ever considered to be a concern, then we should stop using it altogether and probably remove the callback. But while we have the feature we should use it.
* | | | simplifies the RDoc of AR::RuntimeRegistryXavier Noria2013-04-131-20/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | The previous version was kind of duplicating the documentation of AS::PerThreadRegistry. Just say how to use it, the thread locals registry is know part of our vocabulary (though a pointer to Active Support is added for reference).
* | | | complete rewrite of the documentation of AS::PerThreadRegistryXavier Noria2013-04-131-1/+1
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | * It focuses on how to use it. * Removes some ambigueties in the original docs about whether the state is stored in the class. * Documents it provides class-level accessors via method_missing. * Documents that if the extended class has an initializer, it must accept no arguments.
* | | Merge branch 'master' of github.com:lifo/docrailsVijay Dev2013-04-117-8/+19
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: guides/source/action_mailer_basics.md
| * | | JoinPart is no longer an abstract classNeeraj Singh2013-04-081-1/+1
| | | |
| * | | update ActiveRecord::AttributeMethods::Serialization documentation [ci skip]Francesco Rodriguez2013-04-041-0/+7
| | | |
| * | | mark ReversibleBlockHelper as :nodoc: [ci skip]Francesco Rodriguez2013-04-041-1/+1
| | | |
| * | | mark relation mutator as :nodoc: [ci skip]Francesco Rodriguez2013-04-021-2/+1
| | | |
| * | | minor copy editingNeeraj Singh2013-03-303-4/+9
| | | |
* | | | Switched to new naming conventionsNoemj2013-04-111-1/+1
| | | | | | | | | | | | | | | | [ci skip]
* | | | Remove warningCarlos Antonio da Silva2013-04-101-2/+2
| | | | | | | | | | | | | | | | warning: `*' interpreted as argument prefix
* | | | Merge pull request #10152 from Noemj/statement_cacheRafael Mendonça França2013-04-102-0/+27
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Statement cache Conflicts: activerecord/CHANGELOG.md
| * | | | Added statement cacheNoemj2013-04-102-0/+27
| | | | |
* | | | | Merge pull request #10168 from neerajdotname/simple_improvementsRafael Mendonça França2013-04-103-5/+39
|\ \ \ \ \ | | | | | | | | | | | | Simple improvements
| * | | | | converge three lines into oneNeeraj Singh2013-04-101-3/+1
| | | | | |
| * | | | | rdoc for some of the methods in JoinDependencyNeeraj Singh2013-04-102-0/+36
| | | | | |
| * | | | | remove_duplicate_results! should be protectedNeeraj Singh2013-04-101-2/+2
| | | | | |
* | | | | | Revert "Merge pull request #6226 from gnufied/master"Rafael Mendonça França2013-04-101-2/+6
|/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-102-3/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-6/+6
| | | | | | | | | | | | | | | | | | | | PerThreadRegistry module.
* | | | | Created a runtime registry for thread local variables in active record.wangjohn2013-04-095-6/+39
| | | | |
* | | | | Merge pull request #10142 from wangjohn/grouping_thread_localsRafael Mendonça França2013-04-092-9/+16
|\ \ \ \ \ | | | | | | | | | | | | Delegating the value getter and setters in the ScopeRegistry
| * | | | | Delegating the value getter and setters in the ScopeRegistry to thewangjohn2013-04-082-9/+16
| | | | | | | | | | | | | | | | | | | | | | | | current ScopeRegister object.
* | | | | | changed variable name active_record => base_klassNeeraj Singh2013-04-094-12/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Current code stores the klass name in active_record and this is used throughout. While reviewing the code time and again I had the mental picture of active_record being an instance of a klass. However here the actual klass is being stored in @active_record. Secondly at two different places while referring to @active_record the comment refers to it as base klass. All this points to active_record being not the best variable name. So I thought it is better to replace active_record with base_klass. This change is confined to JoinDependency, JoinBase, JoinPart and JoinAssociation - all joining related work.
* | | | | | fix AP warning; remove unused variableVipul A M2013-04-091-1/+1
|/ / / / /
* | | | / Grouping thread locals in the ActiveRecord scopes so that thewangjohn2013-04-082-4/+55
| |_|_|/ |/| | | | | | | | | | | | | | | current_scope and ignore_default_scope locals are brought together under a registry object.
* | | | Avoid iterating over records hash when not necessaryCarlos Antonio da Silva2013-04-071-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | If the reflection scope is not flagged with distinct value, there is no need to iterate over the records, so we avoid that by doing the check before iterating rather than inside the iteration block.
* | | | each to each_value; remove unused varsVipul A M2013-04-071-1/+1
| | | |