You are here

function text_update_4 in Content Construction Kit (CCK) 5

Data is now stored in per-field tables.

File

./text.install, line 84

Code

function text_update_4() {
  $ret = array();
  include_once './' . drupal_get_path('module', 'content') . '/content.module';
  include_once './' . drupal_get_path('module', 'content') . '/content_admin.inc';
  content_clear_type_cache();
  $fields = content_fields();
  foreach ($fields as $field) {
    switch ($field['type']) {
      case 'text_shorttext':
        $columns = array(
          'value' => array(
            'type' => 'varchar',
            'length' => 255,
            'not null' => TRUE,
            'default' => "''",
          ),
          'format' => array(
            'type' => 'int',
            'length' => 10,
            'unsigned' => TRUE,
            'not null' => TRUE,
            'default' => 0,
          ),
        );
        if ($field['text_processing'] == 0) {
          unset($columns['format']);
        }

        // the following line will trigger (negligible) warnings if content_update_5 was run before
        // (column already exists)
        @content_alter_db_field(array(), array(), $field, $columns);
        $db_info = content_database_info($field);
        $table = $db_info['table'];
        if ($field['multiple']) {
          if ($field['text_processing']) {
            $ret[] = update_sql('INSERT INTO {' . $table . '} (vid, delta, nid, ' . $field['field_name'] . '_value, ' . $field['field_name'] . "_format) SELECT vid, delta, nid, field_shorttext, format FROM {node_field_shorttext_data} WHERE field_name = '" . $field['field_name'] . "'");
          }
          else {
            $ret[] = update_sql('INSERT INTO {' . $table . '} (vid, delta, nid, ' . $field['field_name'] . "_value) SELECT vid, delta, nid, field_shorttext FROM {node_field_shorttext_data} WHERE field_name = '" . $field['field_name'] . "'");
          }
        }
        else {
          if ($field['text_processing']) {
            $ret[] = update_sql('INSERT INTO {' . $table . '} (vid, nid, ' . $field['field_name'] . '_value, ' . $field['field_name'] . "_format) SELECT vid, nid, field_shorttext, format FROM {node_field_shorttext_data} WHERE field_name = '" . $field['field_name'] . "'");
          }
          else {
            $ret[] = update_sql('INSERT INTO {' . $table . '} (vid, nid, ' . $field['field_name'] . "_value) SELECT vid, nid, field_shorttext FROM {node_field_shorttext_data} WHERE field_name = '" . $field['field_name'] . "'");
          }
        }
        break;
      case 'text_longtext':
        $columns = array(
          'value' => array(
            'type' => 'mediumtext',
            'not null' => TRUE,
            'default' => "''",
          ),
          'format' => array(
            'type' => 'int',
            'length' => 10,
            'unsigned' => TRUE,
            'not null' => TRUE,
            'default' => 0,
          ),
        );
        if ($field['text_processing'] == 0) {
          unset($columns['format']);
        }

        // the following line will trigger (negligible) warnings if content_update_5 was run before
        // (column already exists)
        @content_alter_db_field(array(), array(), $field, $columns);
        $db_info = content_database_info($field);
        $table = $db_info['table'];
        if ($field['multiple']) {
          if ($field['text_processing']) {
            $ret[] = update_sql('INSERT INTO {' . $table . '} (vid, delta, nid, ' . $field['field_name'] . '_value, ' . $field['field_name'] . "_format) SELECT vid, delta, nid, field_longtext, format FROM {node_field_longtext_data} WHERE field_name = '" . $field['field_name'] . "'");
          }
          else {
            $ret[] = update_sql('INSERT INTO {' . $table . '} (vid, delta, nid, ' . $field['field_name'] . "_value) SELECT vid, delta, nid, field_longtext FROM {node_field_longtext_data} WHERE field_name = '" . $field['field_name'] . "'");
          }
        }
        else {
          if ($field['text_processing']) {
            $ret[] = update_sql('INSERT INTO {' . $table . '} (vid, nid, ' . $field['field_name'] . '_value, ' . $field['field_name'] . "_format) SELECT vid, nid, field_longtext, format FROM {node_field_longtext_data} WHERE field_name = '" . $field['field_name'] . "'");
          }
          else {
            $ret[] = update_sql('INSERT INTO {' . $table . '} (vid, nid, ' . $field['field_name'] . "_value) SELECT vid, nid, field_longtext FROM {node_field_longtext_data} WHERE field_name = '" . $field['field_name'] . "'");
          }
        }
        break;
    }
  }
  $ret[] = update_sql('DROP TABLE {node_field_shorttext_data}');
  $ret[] = update_sql('DROP TABLE {node_field_longtext_data}');
  db_query('DELETE FROM {cache}');
  return $ret;
}