Issue #2875679 by mondrake, daffie: BasicSyntaxTest::testConcatFields fails with contrib driver

merge-requests/1654/head
Nathaniel Catchpole 2018-06-21 22:59:09 +01:00
parent aae672cc28
commit bb6ea924e8
1 changed files with 14 additions and 7 deletions

View File

@ -29,15 +29,22 @@ class BasicSyntaxTest extends DatabaseTestBase {
/**
* Tests string concatenation with field values.
*
* We use 'job' and 'age' fields from the {test} table. Using the 'name' field
* for concatenation causes issues with custom or contrib database drivers,
* since its type 'varchar_ascii' may lead to using field-level collations not
* compatible with the other fields.
*/
public function testConcatFields() {
$result = db_query('SELECT CONCAT(:a1, CONCAT(name, CONCAT(:a2, CONCAT(age, :a3)))) FROM {test} WHERE age = :age', [
':a1' => 'The age of ',
':a2' => ' is ',
':a3' => '.',
':age' => 25,
]);
$this->assertIdentical($result->fetchField(), 'The age of John is 25.', 'Field CONCAT works.');
$result = $this->connection->query(
'SELECT CONCAT(:a1, CONCAT(job, CONCAT(:a2, CONCAT(age, :a3)))) FROM {test} WHERE age = :age', [
':a1' => 'The age of ',
':a2' => ' is ',
':a3' => '.',
':age' => 25,
]
);
$this->assertSame('The age of Singer is 25.', $result->fetchField(), 'Field CONCAT works.');
}
/**