function location_cck_update_6301 in Location 6.3
Same name and namespace in other branches
- 7.5 contrib/location_cck/location_cck.install \location_cck_update_6301()
- 7.3 contrib/location_cck/location_cck.install \location_cck_update_6301()
- 7.4 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 47 - 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;
}