diff options
Diffstat (limited to 'modules/simpletest/tests/database_test.module')
-rw-r--r-- | modules/simpletest/tests/database_test.module | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/modules/simpletest/tests/database_test.module b/modules/simpletest/tests/database_test.module new file mode 100644 index 000000000..0b6ad2ce2 --- /dev/null +++ b/modules/simpletest/tests/database_test.module @@ -0,0 +1,38 @@ +<?php +// $Id$ + +/** + * Implementation of hook_query_alter(). + */ +function database_test_query_alter(SelectQuery $query) { + + if ($query->hasTag('database_test_alter_add_range')) { + $query->range(0, 2); + } + + if ($query->hasTag('database_test_alter_remove_range')) { + $query->range(); + } + + if ($query->hasTag('database_test_alter_add_join')) { + $people_alias = $query->join('test', 'people', "test_task.pid=people.id"); + $name_field = $query->addField('people', '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'; + } +} + |