Changeset 1975

Show
Ignore:
Timestamp:
12/18/04 21:21:50 (4 years ago)
Author:
saxmatt
Message:

Delete duplicate options.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/wp-admin/upgrade-functions.php

    r1971 r1975  
    198198    $wpdb->query("UPDATE $wpdb->comments SET comment_type='pingback', comment_content = REPLACE(comment_content, '<pingback />', '') WHERE comment_content LIKE '<pingback />%'"); 
    199199 
     200    // Some versions have multiple duplicate option_name rows with the same values 
     201    $options = $wpdb->get_results("SELECT option_name, COUNT(option_name) AS dupes FROM `$wpdb->options` GROUP BY option_name"); 
     202    foreach ( $options as $option ) { 
     203        if ( 1 != $option->dupes ) { // Could this be done in the query? 
     204            $limit = $option->dupes - 1; 
     205            $dupe_ids = $wpdb->get_col("SELECT option_id FROM $wpdb->options WHERE option_name = '$option->option_name' LIMIT $limit"); 
     206            $dupe_ids = join($dupe_ids, ','); 
     207            $wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($dupe_ids)"); 
     208        } 
     209    } 
    200210} 
    201211 
  • trunk/wp-admin/upgrade-schema.php

    r1971 r1975  
    7979  option_admin_level int(11) NOT NULL default '1', 
    8080  autoload enum('yes','no') NOT NULL default 'yes', 
    81   PRIMARY KEY  (option_id,blog_id,option_name) 
     81  PRIMARY KEY  (option_id,blog_id,option_name), 
     82  KEY option_name (option_name) 
    8283); 
    8384CREATE TABLE $wpdb->post2cat (