database_test.module in Drupal 9
Same filename and directory in other branches
Database test module.
File
core/modules/system/tests/modules/database_test/database_test.moduleView source
<?php
/**
* @file
* Database test module.
*/
use Drupal\Core\Database\Query\AlterableInterface;
/**
* Implements hook_query_alter().
*/
function database_test_query_alter(AlterableInterface $query) {
if ($query
->hasTag('database_test_alter_add_range')) {
$query
->range(0, 2);
}
if ($query
->hasTag('database_test_alter_add_join')) {
$people_alias = $query
->join('test', 'people', "[test_task].[pid] = [%alias].[id]");
$query
->addField($people_alias, 'name', 'name');
$query
->condition($people_alias . '.id', 2);
}
if ($query
->hasTag('database_test_alter_change_conditional')) {
$conditions =& $query
->conditions();
$conditions[0]['value'] = 2;
}
if ($query
->hasTag('database_test_alter_change_fields')) {
$fields =& $query
->getFields();
unset($fields['age']);
}
if ($query
->hasTag('database_test_alter_change_expressions')) {
$expressions =& $query
->getExpressions();
$expressions['double_age']['expression'] = '[age]*3';
}
}
/**
* Implements hook_query_TAG_alter().
*
* Called by DatabaseTestCase::testAlterRemoveRange.
*/
function database_test_query_database_test_alter_remove_range_alter(AlterableInterface $query) {
$query
->range();
}
Functions
Name | Description |
---|---|
database_test_query_alter | Implements hook_query_alter(). |
database_test_query_database_test_alter_remove_range_alter | Implements hook_query_TAG_alter(). |