Ticket #2699: 2699.4.diff
| File 2699.4.diff, 3.6 KB (added by ryan, 4 years ago) |
|---|
-
wp-includes/version.php
15 15 * 16 16 * @global int $wp_db_version 17 17 */ 18 $wp_db_version = 115 48;18 $wp_db_version = 11557; 19 19 20 20 /** 21 21 * Holds the TinyMCE version -
wp-includes/functions.php
621 621 622 622 // Get the ID, if no ID then return 623 623 // expected_slashed ($name) 624 $option = $wpdb->get_row( "SELECT option_id,autoload FROM $wpdb->options WHERE option_name = '$name'" );625 if ( is_null($option) || !$option->option_id)624 $option = $wpdb->get_row( "SELECT autoload FROM $wpdb->options WHERE option_name = '$name'" ); 625 if ( is_null($option) ) 626 626 return false; 627 627 // expected_slashed ($name) 628 628 $wpdb->query( "DELETE FROM $wpdb->options WHERE option_name = '$name'" ); -
wp-admin/includes/upgrade.php
269 269 270 270 wp_check_mysql_version(); 271 271 wp_cache_flush(); 272 pre_schema_upgrade(); 272 273 make_db_current_silent(); 273 274 upgrade_all(); 274 275 wp_cache_flush(); … … 554 555 if ( 1 != $option->dupes ) { // Could this be done in the query? 555 556 $limit = $option->dupes - 1; 556 557 $dupe_ids = $wpdb->get_col( $wpdb->prepare("SELECT option_id FROM $wpdb->options WHERE option_name = %s LIMIT %d", $option->option_name, $limit) ); 557 $dupe_ids = join($dupe_ids, ','); 558 $wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($dupe_ids)"); 558 if ( $dupe_ids ) { 559 $dupe_ids = join($dupe_ids, ','); 560 $wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($dupe_ids)"); 561 } 559 562 } 560 563 } 561 564 … … 1656 1659 } 1657 1660 } 1658 1661 1659 ?> 1662 /** 1663 * Runs before the schema is upgraded. 1664 */ 1665 function pre_schema_upgrade() { 1666 global $wp_current_db_version, $wp_db_version, $wpdb; 1667 1668 // Only run if less than 2.9 1669 if ( $wp_current_db_version >= 11557 ) 1670 return; 1671 1672 // Delete duplicate options. Keep the option with the highest option_id. 1673 $delete_options = $wpdb->get_col("SELECT o1.option_id FROM $wpdb->options AS o1 JOIN $wpdb->options AS o2 ON o2.option_name = o1.option_name AND o2.option_id > o1.option_id"); 1674 if ( !empty($delete_options) ) { 1675 $delete_options = implode("', '", $delete_options); 1676 $wpdb->query("DELETE FROM $wpdb->options WHERE option_id IN ($delete_options)"); 1677 } 1678 1679 // Add an index on option_id to satisfy the auto_increment requirement 1680 $wpdb->query("ALTER TABLE $wpdb->options ADD INDEX option_id (option_id)"); 1681 1682 // Drop the old primary key. The new primary will be created by dbDelta() 1683 $wpdb->query("ALTER TABLE $wpdb->options DROP PRIMARY KEY"); 1684 1685 // Drop the old option_name index. dbDelta() doesn't do the drop. 1686 $wpdb->query("ALTER TABLE $wpdb->options DROP INDEX option_name"); 1687 } 1688 1689 ?> 1690 No newline at end of file -
wp-admin/includes/schema.php
99 99 option_name varchar(64) NOT NULL default '', 100 100 option_value longtext NOT NULL, 101 101 autoload varchar(20) NOT NULL default 'yes', 102 PRIMARY KEY (option_ id,blog_id,option_name),103 KEY option_ name (option_name)102 PRIMARY KEY (option_name), 103 KEY option_id (option_id) 104 104 ) $charset_collate; 105 105 CREATE TABLE $wpdb->postmeta ( 106 106 meta_id bigint(20) unsigned NOT NULL auto_increment,
