Changes field language into langcode.
function field_sql_storage_update_8000(&$sandbox) {
// Prepare updated schema data structures.
$primary_key_data = array(
'entity_type',
'entity_id',
'deleted',
'delta',
'langcode',
);
$primary_key_revision = array(
'entity_type',
'entity_id',
'revision_id',
'deleted',
'delta',
'langcode',
);
$langcode_index = array(
'langcode',
);
$field_langcode = array(
'type' => 'varchar',
'length' => 32,
'not null' => true,
'default' => '',
);
// Retrieve field data.
$fields = _update_7000_field_read_fields(array(
'storage_type' => 'field_sql_storage',
));
// Update schema.
foreach ($fields as $field) {
$data_table = _field_sql_storage_tablename($field);
$revision_table = _field_sql_storage_revision_tablename($field);
$table_info = array(
$data_table => $primary_key_data,
$revision_table => $primary_key_revision,
);
foreach ($table_info as $table => $primary_key) {
// Do not attempt to rename the 'language' column for fields that already
// contain it (created during the upgrade before this update function).
if (db_field_exists($table, 'language')) {
db_drop_primary_key($table);
db_drop_index($table, 'language');
db_change_field($table, 'language', 'langcode', $field_langcode);
db_add_primary_key($table, $primary_key);
db_add_index($table, 'langcode', $langcode_index);
}
}
}
}