[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