Skip to content

Commit

Permalink
Avoiding unnecessary extra calls to canBeJoinable
Browse files Browse the repository at this point in the history
  • Loading branch information
lorenzo committed Jun 11, 2013
1 parent 2f1b843 commit 2980839
Showing 1 changed file with 4 additions and 3 deletions.
7 changes: 4 additions & 3 deletions lib/Cake/ORM/Query.php
Expand Up @@ -433,7 +433,7 @@ protected function _addContainments() {

$contain = $this->normalizedContainments();
foreach ($contain as $relation => $meta) {
if ($meta['instance'] && !$meta['instance']->canBeJoined($meta['config'])) {
if ($meta['instance'] && !$meta['canBeJoined']) {
$this->_loadEagerly[$relation] = $meta;
}
}
Expand All @@ -443,7 +443,7 @@ protected function _addContainments() {
$alias = $table->alias();
$this->_addJoin($options['instance'], $options['config']);
foreach ($options['associations'] as $relation => $meta) {
if ($meta['instance'] && !$meta['instance']->canBeJoined($meta['config'])) {
if ($meta['instance'] && !$meta['canBeJoined']) {
$this->_loadEagerly[$relation] = $meta;
}
}
Expand Down Expand Up @@ -476,6 +476,7 @@ protected function _normalizeContain(Table $parent, $alias, $options) {
'instance' => $instance,
'config' => array_diff_key($options, $extra)
];
$config['canBeJoined'] = $instance->canBeJoined($config['config']);

foreach ($extra as $t => $assoc) {
$config['associations'][$t] = $this->_normalizeContain($table, $t, $assoc);
Expand All @@ -495,7 +496,7 @@ protected function _resolveJoins($source, $associations) {
$result = [];
foreach ($associations as $table => $options) {
$associated = $options['instance'];
if ($associated && $associated->canBeJoined($options['config'])) {
if ($options['canBeJoined']) {
$result[$table] = $options;
$result += $this->_resolveJoins($associated->target(), $options['associations']);
}
Expand Down

0 comments on commit 2980839

Please sign in to comment.