'int', 'unsigned' => TRUE, 'not null' => TRUE, 'sortable' => TRUE, 'views' => TRUE, 'index' => TRUE, ); break; } return array('columns' => $columns); } /** * Implements hook_schema(). */ function serial_schema() { // Get the standard schema: module_load_include('inc', 'serial'); $table_schema = _serial_get_table_schema(); $schema = array(); foreach (_serial_get_all_fields() as $field) { $schema[_serial_get_table_name($field->entity_type, $field->bundle, $field->field_name)] = $table_schema; } // Return the schema of all the assistant tables (one per field instance). return $schema; } /** * Upgrade path. * * Switches from nids to uniqids. */ function serial_update_7130() { module_load_include('inc', 'serial'); $table_schema = _serial_get_table_schema(); // Update the schema of old assistant tables. foreach (_serial_get_all_fields() as $field) { // Empty the table. $table = _serial_get_table_name($field->entity_type, $field->bundle, $field->field_name); db_delete($table)->execute(); // Drop nid field and key. db_drop_field($table, 'nid'); db_drop_unique_key($table, 'nid'); // Add uniqid field and key. db_add_field($table, 'uniqid', $table_schema['fields']['uniqid']); db_add_unique_key($table, 'uniqid', array('uniqid')); } } /** * Add 'node_' to all existing serial tables. * * Change name: * from: serial_{content_type}_{field_name} * to: serial_node_{content_type}_{field_name} */ function serial_update_7131() { // All old serial tables are of 'node' entity type. foreach (db_find_tables('serial_%') as $table) { db_rename_table($table, preg_replace('/^serial_/', 'serial_node_', $table)); } } /** * Reorganize table names to prevent collisions with long names. */ function serial_update_7132() { module_load_include('inc', 'serial'); foreach (db_find_tables('serial_%') as $table) { // Explode by underscores and match old format. list(, $entity_type, $bundle, $field_name) = explode('_', $table, 4); db_rename_table($table, _serial_get_table_name($entity_type, $bundle, $field_name)); } }