You are here

function location_cck_update_6301 in Location 7.4

Same name and namespace in other branches
  1. 6.3 contrib/location_cck/location_cck.install \location_cck_update_6301()
  2. 7.5 contrib/location_cck/location_cck.install \location_cck_update_6301()
  3. 7.3 contrib/location_cck/location_cck.install \location_cck_update_6301()

Drupal 6 location_cck 3.x update.

File

contrib/location_cck/location_cck.install, line 35
Module installation/uninstallation hooks.

Code

function location_cck_update_6301() {
  $ret = array();
  $schema = drupal_get_schema('location_instance');
  $schema['description'] = 'Temp table to repair data integrity of location_instance table.';
  unset($schema['indexes']);
  db_create_table($ret, 'location_instance_tmp', $schema);
  $ret[] = update_sql("INSERT INTO {location_instance_tmp} (nid, vid, genid, lid) SELECT nid, vid, l.genid, l.lid FROM {node} n JOIN (SELECT SUBSTRING_INDEX(genid, ':', -1) as genvid, lid, genid FROM {location_instance}) as l ON n.vid = l.genvid");
  $ret[] = update_sql("DELETE FROM {location_instance} WHERE genid like 'cck:%'");
  $ret[] = update_sql("INSERT INTO {location_instance} (nid, vid, genid, lid) SELECT nid, vid, genid, lid FROM {location_instance_tmp} GROUP BY nid, vid, genid, lid");
  db_drop_table($ret, 'location_instance_tmp');
  return $ret;
}