[wp-cvs] wordpress/wp-admin upgrade-functions.php, 1.81, 1.82 upgrade-schema.php, 1.13, 1.14

Matthew Mullenweg saxmatt at users.sourceforge.net
Sat Dec 18 21:21:53 UTC 2004


Update of /cvsroot/cafelog/wordpress/wp-admin
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv689/wp-admin

Modified Files:
	upgrade-functions.php upgrade-schema.php 
Log Message:
Delete duplicate options.

Index: upgrade-schema.php
===================================================================
RCS file: /cvsroot/cafelog/wordpress/wp-admin/upgrade-schema.php,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** upgrade-schema.php	17 Dec 2004 19:27:32 -0000	1.13
--- upgrade-schema.php	18 Dec 2004 21:21:50 -0000	1.14
***************
*** 79,83 ****
    option_admin_level int(11) NOT NULL default '1',
    autoload enum('yes','no') NOT NULL default 'yes',
!   PRIMARY KEY  (option_id,blog_id,option_name)
  );
  CREATE TABLE $wpdb->post2cat (
--- 79,84 ----
    option_admin_level int(11) NOT NULL default '1',
    autoload enum('yes','no') NOT NULL default 'yes',
!   PRIMARY KEY  (option_id,blog_id,option_name),
!   KEY option_name (option_name)
  );
  CREATE TABLE $wpdb->post2cat (

Index: upgrade-functions.php
===================================================================
RCS file: /cvsroot/cafelog/wordpress/wp-admin/upgrade-functions.php,v
retrieving revision 1.81
retrieving revision 1.82
diff -C2 -d -r1.81 -r1.82
*** upgrade-functions.php	17 Dec 2004 19:27:31 -0000	1.81
--- upgrade-functions.php	18 Dec 2004 21:21:50 -0000	1.82
***************
*** 198,201 ****
--- 198,211 ----
  	$wpdb->query("UPDATE $wpdb->comments SET comment_type='pingback', comment_content = REPLACE(comment_content, '<pingback />', '') WHERE comment_content LIKE '<pingback />%'");
  
+ 	// Some versions have multiple duplicate option_name rows with the same values
+ 	$options = $wpdb->get_results("SELECT option_name, COUNT(option_name) AS dupes FROM `$wpdb->options` GROUP BY option_name");
+ 	foreach ( $options as $option ) {
+ 		if ( 1 != $option->dupes ) { // Could this be done in the query?
+ 			$limit = $option->dupes - 1;
+ 			$dupe_ids = $wpdb->get_col("SELECT option_id FROM $wpdb->options WHERE option_name = '$option->option_name' LIMIT $limit");
+ 			$dupe_ids = join($dupe_ids, ',');
+ 			$wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($dupe_ids)");
+ 		}
+ 	}
  }
  




More information about the cvs mailing list