You are here

public function DatabaseReservedKeywordTestCase::testTableNameQuoting in Drupal 7

File

modules/simpletest/tests/database_test.test, line 4281

Class

DatabaseReservedKeywordTestCase
Test reserved keyword handling (introduced for MySQL 8+)

Code

public function testTableNameQuoting() {

  // Test db_query with {table} pattern.
  $record = db_query('SELECT * FROM {system} LIMIT 1')
    ->fetchObject();
  $this
    ->assertTrue(isset($record->filename), 'Successfully queried the {system} table.');
  $connection = Database::getConnection()
    ->getConnectionOptions();
  if ($connection['driver'] === 'sqlite') {

    // In SQLite simpletest's prefixed db tables exist in their own schema
    // (e.g. simpletest124904.system), so we cannot test the schema.{table}
    // syntax here as the table name will have the schema name prepended to it
    // when prefixes are processed.
    $this
      ->assert(TRUE, 'Skipping schema.{system} test for SQLite.');
  }
  else {
    $database = $connection['database'];

    // Test db_query with schema.{table} pattern
    db_query('SELECT * FROM ' . $database . '.{system} LIMIT 1')
      ->fetchObject();
    $this
      ->assertTrue(isset($record->filename), 'Successfully queried the schema.{system} table.');
  }
}