diff options
author | Angie Byron <webchick@24967.no-reply.drupal.org> | 2008-10-22 04:01:03 +0000 |
---|---|---|
committer | Angie Byron <webchick@24967.no-reply.drupal.org> | 2008-10-22 04:01:03 +0000 |
commit | f4315766fe31d57cd3a709d666d363bcf933febe (patch) | |
tree | ea07501721ec218f2220ffe19f620618b792f23f | |
parent | 1fa03d7c33f30a57eb9051e5d979f41178bbcefa (diff) | |
download | brdo-f4315766fe31d57cd3a709d666d363bcf933febe.tar.gz brdo-f4315766fe31d57cd3a709d666d363bcf933febe.tar.bz2 |
#316868 by Crell: Make addField() alias to the field name, rather than the table and field name when there are no conflicts.
-rw-r--r-- | includes/database/select.inc | 7 | ||||
-rw-r--r-- | modules/simpletest/tests/database_test.test | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/includes/database/select.inc b/includes/database/select.inc index 3adf2bd99..2be1e08d9 100644 --- a/includes/database/select.inc +++ b/includes/database/select.inc @@ -335,10 +335,17 @@ class SelectQuery extends Query implements QueryConditionInterface, QueryAlterab * The unique alias that was assigned for this field. */ public function addField($table_alias, $field, $alias = NULL) { + // If no alias is specified, first try the field name itself. if (empty($alias)) { + $alias = $field; + } + + // If that's already in use, try the table name and field name. + if (!empty($this->tables[$alias])) { $alias = $table_alias . '_' . $field; } + // If that is already used, just add a counter until we find an unused alias. $alias_candidate = $alias; $count = 2; while (!empty($this->tables[$alias_candidate])) { diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test index 7efb88256..adc94a39e 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -1014,7 +1014,7 @@ class DatabaseSelectTestCase extends DatabaseTestCase { $result = $query->execute(); // Check that the aliases are being created the way we want. - $this->assertEqual($name_field, 'test_name', t('Name field alias is correct.')); + $this->assertEqual($name_field, 'name', t('Name field alias is correct.')); $this->assertEqual($age_field, 'age', t('Age field alias is correct.')); // Ensure that we got the right record. @@ -1034,7 +1034,7 @@ class DatabaseSelectTestCase extends DatabaseTestCase { $result = $query->execute(); // Check that the aliases are being created the way we want. - $this->assertEqual($name_field, 'test_name', t('Name field alias is correct.')); + $this->assertEqual($name_field, 'name', t('Name field alias is correct.')); $this->assertEqual($age_field, 'double_age', t('Age field alias is correct.')); // Ensure that we got the right record. |