summaryrefslogtreecommitdiff
path: root/modules/field/field.install
diff options
context:
space:
mode:
Diffstat (limited to 'modules/field/field.install')
-rw-r--r--modules/field/field.install16
1 files changed, 13 insertions, 3 deletions
diff --git a/modules/field/field.install b/modules/field/field.install
index 91b0d210f..34afd5ad1 100644
--- a/modules/field/field.install
+++ b/modules/field/field.install
@@ -309,11 +309,21 @@ function _update_7000_field_delete_instance($field_name, $entity_type, $bundle)
/**
* Utility function: fetch all the field definitions from the database.
+ *
+ * @param $conditions
+ * An array of conditions to limit the select query to.
*/
-function _update_7000_field_read_fields() {
+function _update_7000_field_read_fields(array $conditions = array()) {
$fields = array();
- $results = db_query('SELECT * FROM {field_config} WHERE deleted = 0', array(), array('fetch' => PDO::FETCH_ASSOC));
- foreach ($results as $record) {
+ $query = db_select('field_config', 'fc', array('fetch' => PDO::FETCH_ASSOC))
+ ->fields('fc')
+ ->condition('deleted', 0);
+ if (!empty($conditions)) {
+ foreach ($conditions as $column => $value) {
+ $query->condition($column, $value);
+ }
+ }
+ foreach ($query->execute() as $record) {
$field = unserialize($record['data']);
$field['id'] = $record['id'];
$field['field_name'] = $record['field_name'];