Read rows selected by $params and $include_additional from the field_config table. If $params include 'entity_type' or 'bundle' the field_config_instance table is joined on the 'id' = 'field_id' columns. Loads and installs the module(s) for the field(s) selected.
Mark all instances of $field_name deleted in the field_config_instance table and mark the field type of this field deleted in the field_config table. In order for an instance to be deleted, the module which defines the entity in the instance bundle must be active (enabled). If the entity module is disabled, this function will silently fail.
Mark instance $instance for deletion. In order for the instance to be marked, the module which defines the entity in the instance bundle must be active (enabled). If the entity defining module is inactive, deletion will silently fail. Actual deletion will be done during a field_purge_batch() operation started by cron.
A Drupal "field" is a way to attach additional data to any Drupal entity declared fieldable. An entity is marked as fieldable by returning 'fieldable' => TRUE in the array returned by its hook_enitity_info(). Drupal core entities which are fieldable are: node, user, taxonomy and comment. The default is 'fieldable' => FALSE. Fields can be attached to entities using the Field API.