Remove notoptions caching. Multile rewrite_rules options were being created. See #3692 #2268

git-svn-id: http://svn.automattic.com/wordpress/trunk@4831 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
ryan 2007-01-30 01:43:39 +00:00
parent a4355820c5
commit f8c689b4f0
7 changed files with 34 additions and 16 deletions

View File

@ -75,6 +75,13 @@ addLoadEvent(focusit);
<ul id="categorychecklist"><?php dropdown_categories(); ?></ul></div>
</fieldset>
<fieldset id="tagdiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Tags') ?></h3>
<div class="dbx-content">
<p id="jaxtag"></p>
<ul id="tagchecklist"><?php dropdown_tags(); ?></ul></div>
</fieldset>
<fieldset id="commentstatusdiv" class="dbx-box">
<h3 class="dbx-handle"><?php _e('Discussion') ?></h3>
<div class="dbx-content">

View File

@ -120,6 +120,20 @@ CREATE TABLE $wpdb->posts (
KEY post_name (post_name),
KEY type_status_date (post_type,post_status,post_date,ID)
);
CREATE TABLE $wpdb->tags (
tag_id bigint(20) unsigned NOT NULL auto_increment,
tag varchar(30) NOT NULL default '',
raw_tag varchar(50) NOT NULL default '',
tag_count bigint(20) unsigned NOT NULL default '0',
PRIMARY KEY (tag_id)
);
CREATE TABLE $wpdb->tagged (
tag_id bigint(20) unsigned NOT NULL default '0',
post_id bigint(20) unsigned NOT NULL default '0',
PRIMARY KEY (tag_id,post_id),
KEY tag_id_index (tag_id),
KEY post_id_index (post_id)
);
CREATE TABLE $wpdb->users (
ID bigint(20) unsigned NOT NULL auto_increment,
user_login varchar(60) NOT NULL default '',

View File

@ -203,10 +203,6 @@ function is_serialized_string($data) {
function get_option($setting) {
global $wpdb;
// prevent non-existent options from triggering multiple queries
if ( true === wp_cache_get($setting, 'notoptions') )
return false;
$value = wp_cache_get($setting, 'options');
if ( false === $value ) {
@ -219,8 +215,7 @@ function get_option($setting) {
if( is_object( $row) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values
$value = $row->option_value;
wp_cache_set($setting, $value, 'options');
} else { // option does not exist, so we must cache its non-existence
wp_cache_set($setting, true, 'notoptions');
} else {
return false;
}
}
@ -279,9 +274,6 @@ function update_option($option_name, $newvalue) {
return true;
}
if ( true === wp_cache_get($option_name, 'notoptions') )
wp_cache_delete($option_name, 'notoptions');
$_newvalue = $newvalue;
$newvalue = maybe_serialize($newvalue);
@ -301,12 +293,9 @@ function update_option($option_name, $newvalue) {
function add_option($name, $value = '', $description = '', $autoload = 'yes') {
global $wpdb;
// Make sure the option doesn't already exist we can check the cache before we ask for a db query
if ( true === wp_cache_get($name, 'notoptions') )
wp_cache_delete($name, 'notoptions');
else
if ( false !== get_option($name) )
return;
// Make sure the option doesn't already exist
if ( false !== get_option($name) )
return;
$value = maybe_serialize($value);

View File

@ -522,6 +522,9 @@ function wp_insert_post($postarr = array()) {
}
$post_cat = $post_category[0];
if ( empty($post_tags) )
$post_tags = array();
if ( empty($post_author) )
$post_author = $user_ID;
@ -646,6 +649,7 @@ function wp_insert_post($postarr = array()) {
}
wp_set_post_categories($post_ID, $post_category);
wp_set_post_tags($post_ID, $post_tags);
if ( 'page' == $post_type ) {
clean_page_cache($post_ID);

View File

@ -3,6 +3,6 @@
// This holds the version number in a separate file so we can bump it without cluttering the SVN
$wp_version = '2.2-bleeding';
$wp_db_version = 4772;
$wp_db_version = 4815;
?>

View File

@ -34,6 +34,8 @@ class wpdb {
var $optiongroups;
var $optiongroup_options;
var $postmeta;
var $tags;
var $tagged;
/**
* Connects to the database server and selects a database

View File

@ -116,6 +116,8 @@ $wpdb->links = $wpdb->prefix . 'links';
$wpdb->options = $wpdb->prefix . 'options';
$wpdb->postmeta = $wpdb->prefix . 'postmeta';
$wpdb->usermeta = $wpdb->prefix . 'usermeta';
$wpdb->tags = $wpdb->prefix . 'tags';
$wpdb->tagged = $wpdb->prefix . 'tagged';
if ( defined('CUSTOM_USER_TABLE') )
$wpdb->users = CUSTOM_USER_TABLE;