aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
Commit message (Collapse)AuthorAgeFilesLines
* Merge pull request #12508 from ↵Rafael Mendonça França2013-10-131-2/+12
|\ | | | | | | | | | | | | | | | | jetthoughts/12415_generate_subqueries_for_relation_from_binding_params Generate subquery for Relation passed as array condition for where Conflicts: activerecord/CHANGELOG.md
| * Generate subquery for Relation passed as array condition for wherePaul Nikitochkin2013-10-131-2/+12
| | | | | | | | | | | | | | | | | | Instead of executing 2 queries for fetching records filtered by array condition with Relation, added generation of subquery to current query. This behaviour will be consistent when passes Relation as hash condition to where Closes: #12415
* | Merge pull request #12511 from ↵Rafael Mendonça França2013-10-131-3/+3
|\ \ | | | | | | | | | | | | jetthoughts/informative_raise_message_for_incorrect_association Make missed association exception message more informative
| * | Make missed association exception message more informativePaul Nikitochkin2013-10-131-3/+3
| |/ | | | | | | | | Add target class name, which should have missed association on preload, into exception message to simplify detecting problem part.
* | Drop unused iterator varVipul A M2013-10-131-1/+1
| |
* | Merge pull request #11791 from versioncontrol/includes_with_persistent_selectRafael Mendonça França2013-10-121-1/+1
|\ \ | |/ |/| Includes with persistent select, fixes #11773
| * Fixes #11773 when using includes combined with select, the select statement ↵Edo Balvers2013-10-081-1/+1
| | | | | | | | was overwritten.
* | no reason to do this column addition and subtraction businessAaron Patterson2013-10-111-1/+1
| |
* | refactor a little so we can remove some methodsAaron Patterson2013-10-102-4/+1
| |
* | the parent node is on the stack, so use itAaron Patterson2013-10-101-4/+4
| | | | | | | | | | we don't need to walk back up the node's parents when we have the parent on the stack
* | pass the parent node to the construct methodAaron Patterson2013-10-101-7/+6
| |
* | nodes do not need to be sortedAaron Patterson2013-10-101-1/+1
| |
* | delete unused codeAaron Patterson2013-10-102-50/+0
| | | | | | | | | | Now that we merge trees from the top down, we don't need to search through the whole tree for particular nodes, just walk it and merge.
* | merge JoinDependency as outer joinsAaron Patterson2013-10-102-1/+31
| | | | | | | | Merge JoinDependency objects as outer joins
* | stuff the join dependency object in the "anything goes" hash.Aaron Patterson2013-10-104-6/+8
| |
* | stop splatting things back and forthAaron Patterson2013-10-102-2/+2
| |
* | simplify each method.Aaron Patterson2013-10-101-8/+2
| | | | | | | | Stop writing terrible code Aaron. This is Ruby, not Scheme
* | stop creating a bunch of relation objects when we can slap all the joins on ↵Aaron Patterson2013-10-092-8/+3
| | | | | | | | at once
* | Merge branch 'builder-instances'Rafael Mendonça França2013-10-097-57/+42
|\ \
| * | Method visibility will not make difference hereRafael Mendonça França2013-10-094-8/+0
| | |
| * | Remove builder instancesRafael Mendonça França2013-10-092-22/+10
| | | | | | | | | | | | | | | All the job can be done at class level so we can avoid some object allocation
| * | Extract the scope building to a class methodRafael Mendonça França2013-10-092-10/+17
| | |
| * | Remove unneeded readerRafael Mendonça França2013-10-091-2/+0
| | |
| * | Move wrap_scope to class levelRafael Mendonça França2013-10-091-2/+2
| | |
| * | Move macro to class levelRafael Mendonça França2013-10-094-5/+5
| | |
| * | Make validate_options a class methodRafael Mendonça França2013-10-091-3/+3
| | |
| * | Make valid_options a class methodRafael Mendonça França2013-10-096-7/+7
| | |
| * | Define the association extensions without need to have a builderRafael Mendonça França2013-10-092-14/+14
| | | | | | | | | | | | instance
* | | no need to to_symAaron Patterson2013-10-091-1/+1
| | |
* | | Merge branch 'tree'Aaron Patterson2013-10-095-109/+105
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree: (22 commits) remove dead code add some convenient methods for avoiding array allocations hide join_constraints inside the JoinDependency object speed up match? expose the root node and call it just skip the join if it's already there speed up finding existing nodes make node search more efficient remove == so we can see where walking up parents occurs push parent up to the superclass convert JoinBase to a tree and remove the Node class names are guaranteed to be symbols eliminate function that is only used in one place we will always detect the same node, so just pass the node in we do not need to to_s the name all the time parent is guaranteed to be the same reduce number of comparisons and array allocations rename the variable to make more sense with a tree walk the tree rather than generating a hash and walking it do not convert the tree to a list just for the first node ...
| * | | remove dead codeAaron Patterson2013-10-091-13/+0
| | | |
| * | | add some convenient methods for avoiding array allocationsAaron Patterson2013-10-092-3/+6
| | | |
| * | | hide join_constraints inside the JoinDependency objectAaron Patterson2013-10-092-8/+7
| | | |
| * | | speed up match?Aaron Patterson2013-10-091-0/+1
| | | |
| * | | expose the root node and call itAaron Patterson2013-10-091-21/+11
| | | |
| * | | just skip the join if it's already thereAaron Patterson2013-10-091-14/+10
| | | | | | | | | | | | | | | | Remove the annoying `find_or_build` stuff.
| * | | speed up finding existing nodesAaron Patterson2013-10-091-3/+1
| | | | | | | | | | | | | | | | | | | | The node must be a child of the parent passed in, so only search children of the parent node
| * | | make node search more efficientAaron Patterson2013-10-094-3/+43
| | | | | | | | | | | | | | | | | | | | | | | | Rather than search every node in the tree, comparing that node and all of its parents every time, start at the root from both sides and work our way down the tree
| * | | remove == so we can see where walking up parents occursAaron Patterson2013-10-094-25/+15
| | | |
| * | | push parent up to the superclassAaron Patterson2013-10-093-7/+11
| | | | | | | | | | | | | | | | We always want a linked list back to the root node.
| * | | convert JoinBase to a tree and remove the Node classAaron Patterson2013-10-092-42/+30
| | | |
| * | | names are guaranteed to be symbolsAaron Patterson2013-10-081-1/+1
| | | |
| * | | eliminate function that is only used in one placeAaron Patterson2013-10-081-7/+2
| | | |
| * | | we will always detect the same node, so just pass the node inAaron Patterson2013-10-081-7/+2
| | | |
| * | | we do not need to to_s the name all the timeAaron Patterson2013-10-081-5/+3
| | | |
| * | | parent is guaranteed to be the sameAaron Patterson2013-10-081-4/+1
| | | | | | | | | | | | | | | | | | | | since we are searching a tree, the current level should be consistent, so we don't have to inspect the parent class / table
| * | | reduce number of comparisons and array allocationsAaron Patterson2013-10-081-11/+10
| | | | | | | | | | | | | | | | | | | | Just inspecting the children nodes will reduce the number of comparisons we have to do (since it is limited to the child size)
| * | | rename the variable to make more sense with a treeAaron Patterson2013-10-081-7/+7
| | | |
| * | | walk the tree rather than generating a hash and walking itAaron Patterson2013-10-081-21/+10
| | | |
| * | | do not convert the tree to a list just for the first nodeAaron Patterson2013-10-081-1/+1
| | | |