Changeset dcf780a in github


Ignore:
Timestamp:
Nov 22, 2008 1:06:13 PM (4 years ago)
Author:
alecpl <alec@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
d59aaa1
Parents:
3e48d2ee
Message:
  • fix r2076: removed cache.session_id column, removed DELETEs from cache in session_gc
  • trust DB server's time when "touching" cache and messages tables
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • SQL/mssql.initial.sql

    r3e48d2ee rdcf780a  
    22        [cache_id] [int] IDENTITY (1, 1) NOT NULL , 
    33        [user_id] [int] NOT NULL , 
    4         [session_id] [varchar] (32) COLLATE Latin1_General_CI_AI NULL , 
    54        [cache_key] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , 
    65        [created] [datetime] NOT NULL , 
     
    120119ALTER TABLE [dbo].[cache] ADD  
    121120        CONSTRAINT [DF_cache_user_id] DEFAULT ('0') FOR [user_id], 
    122         CONSTRAINT [DF_cache_session_id] DEFAULT (null) FOR [session_id], 
    123121        CONSTRAINT [DF_cache_cache_key] DEFAULT ('') FOR [cache_key], 
    124122        CONSTRAINT [DF_cache_created] DEFAULT (getdate()) FOR [created] 
     
    129127 
    130128 CREATE  INDEX [IX_cache_cache_key] ON [dbo].[cache]([cache_key]) ON [PRIMARY] 
    131 GO 
    132  
    133  CREATE  INDEX [IX_cache_session_id] ON [dbo].[cache]([session_id]) ON [PRIMARY] 
    134129GO 
    135130 
  • SQL/mysql.initial.sql

    r3e48d2ee rdcf780a  
    1212  `cache_id` int(10) unsigned NOT NULL auto_increment, 
    1313  `user_id` int(10) unsigned NOT NULL default '0', 
    14   `session_id` varchar(40) default NULL, 
    1514  `cache_key` varchar(128) NOT NULL default '', 
    1615  `created` datetime NOT NULL default '0000-00-00 00:00:00', 
  • SQL/mysql.update.sql

    r3e48d2ee rdcf780a  
    3535 
    3636ALTER TABLE `cache` 
    37     ADD CONSTRAINT `session_id_fk_cache` FOREIGN KEY (`session_id`) 
    38     REFERENCES `session`(`sess_id`) 
    39     ON DELETE CASCADE 
    40     ON UPDATE CASCADE; 
    41  
     37    DROP `session_id`; 
     38     
    4239ALTER TABLE `session` 
    4340    ADD INDEX `changed_index` (`changed`); 
  • SQL/mysql5.initial.sql

    r3e48d2ee rdcf780a  
    6969CREATE TABLE `cache` ( 
    7070 `cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
    71  `session_id` varchar(40) CHARACTER SET ascii COLLATE ascii_general_ci, 
    7271 `cache_key` varchar(128) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL, 
    7372 `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', 
     
    7877 CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`) 
    7978   REFERENCES `users`(`user_id`) 
    80      ON DELETE CASCADE 
    81      ON UPDATE CASCADE, 
    82  CONSTRAINT `session_id_fk_cache` FOREIGN KEY (`session_id`) 
    83    REFERENCES `session`(`sess_id`) 
    8479     ON DELETE CASCADE 
    8580     ON UPDATE CASCADE 
  • SQL/postgres.initial.sql

    r3e48d2ee rdcf780a  
    130130    cache_id integer DEFAULT nextval('cache_ids'::text) PRIMARY KEY, 
    131131    user_id integer NOT NULL REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE, 
    132     session_id character varying(40) REFERENCES "session" (sess_id) ON DELETE CASCADE ON UPDATE CASCADE, 
    133132    cache_key character varying(128) DEFAULT ''::character varying NOT NULL, 
    134133    created timestamp with time zone DEFAULT now() NOT NULL, 
     
    137136 
    138137CREATE INDEX cache_user_id_idx ON "cache" (user_id, cache_key); 
    139 CREATE INDEX cache_session_id_idx ON "cache" (session_id); 
    140138 
    141139-- 
  • SQL/postgres.update.sql

    r3e48d2ee rdcf780a  
    2525-- Updates from version 0.2-beta 
    2626 
    27 ALTER TABLE cache DROP CONSTRAINT cache_session_id_fkey; 
    28 ALTER TABLE cache ADD FOREIGN KEY (session_id) REFERENCES session (sess_id) ON DELETE CASCADE ON UPDATE CASCADE; 
     27ALTER TABLE cache DROP session_id; 
    2928 
    30 CREATE INDEX cache_session_id_idx ON cache (session_id); 
    3129CREATE INDEX session_changed_idx ON session (changed); 
  • SQL/sqlite.initial.sql

    r3e48d2ee rdcf780a  
    1212  cache_id integer NOT NULL PRIMARY KEY, 
    1313  user_id integer NOT NULL default 0, 
    14   session_id varchar(40) default NULL, 
    1514  cache_key varchar(128) NOT NULL default '', 
    1615  created datetime NOT NULL default '0000-00-00 00:00:00', 
  • program/include/rcube_imap.php

    r3e48d2ee rdcf780a  
    21472147      $this->db->query( 
    21482148        "UPDATE ".get_table_name('cache')." 
    2149          SET    created=". $this->db->fromunixtime(time()).", data=?, session_id=? 
     2149         SET    created=". $this->db->now().", data=? 
    21502150         WHERE  user_id=? 
    21512151         AND    cache_key=?", 
    21522152        $data, 
    2153         session_id(), 
    21542153        $_SESSION['user_id'], 
    21552154        $key); 
     
    21602159      $this->db->query( 
    21612160        "INSERT INTO ".get_table_name('cache')." 
    2162          (created, user_id, cache_key, data, session_id) 
    2163          VALUES (".$this->db->fromunixtime(time()).", ?, ?, ?, ?)", 
     2161         (created, user_id, cache_key, data) 
     2162         VALUES (".$this->db->now().", ?, ?, ?)", 
    21642163        $_SESSION['user_id'], 
    21652164        $key, 
    2166         $data, 
    2167         session_id()); 
     2165        $data); 
    21682166      } 
    21692167    } 
     
    23752373        "INSERT INTO ".get_table_name('messages')." 
    23762374         (user_id, del, cache_key, created, idx, uid, subject, ".$this->db->quoteIdentifier('from').", ".$this->db->quoteIdentifier('to').", cc, date, size, headers, structure) 
    2377          VALUES (?, 0, ?, ".$this->db->fromunixtime(time()).", ?, ?, ?, ?, ?, ?, ".$this->db->fromunixtime($headers->timestamp).", ?, ?, ?)", 
     2375         VALUES (?, 0, ?, ".$this->db->now().", ?, ?, ?, ?, ?, ?, ".$this->db->fromunixtime($headers->timestamp).", ?, ?, ?)", 
    23782376        $_SESSION['user_id'], 
    23792377        $key, 
  • program/include/session.inc

    r3e48d2ee rdcf780a  
    112112  $DB->query("DELETE FROM " . get_table_name('session') . " WHERE sess_id=?", $key); 
    113113 
    114   // delete session entries in cache table 
    115   // on databases wthout foreign keys 
    116   if ($rcmail->config->get('enable_caching') && $DB->db_provider != 'pgsql') { 
    117     $DB->query("DELETE FROM " . get_table_name('cache') . " WHERE session_id=?", $key); 
    118   } 
    119  
    120114  return true; 
    121115} 
     
    132126  } 
    133127 
    134   $now = $DB->fromunixtime(time() - $maxlifetime); 
    135  
    136   // delete session entries in cache table 
    137   if ($rcmail->config->get('enable_caching')) { 
    138  
    139     // on databases wthout foreign keys... 
    140     if($DB->db_provider != 'pgsql') { 
    141  
    142       // get all expired sessions 
    143       $sql_result = $DB->query( 
    144         "SELECT sess_id FROM " . get_table_name('session') . " 
    145             WHERE changed < " . $now); 
    146  
    147       $exp_sessions = array(); 
    148       while ($sql_arr = $DB->fetch_assoc($sql_result)) { 
    149         $exp_sessions[] = $sql_arr['sess_id']; 
    150       } 
    151  
    152       if (sizeof($exp_sessions)) { 
    153         $exp_sessions = "'" . join("','", $exp_sessions) . "'"; 
    154         // delete session cache records 
    155         $DB->query("DELETE FROM " . get_table_name('cache') . " 
    156             WHERE session_id IN (" . $exp_sessions . ")"); 
    157       } 
    158     } 
    159     // also run message cache GC 
     128  if ($rcmail->config->get('enable_caching')) 
    160129    rcmail_message_cache_gc(); 
    161   } 
    162130 
    163131  // just delete all expired sessions 
Note: See TracChangeset for help on using the changeset viewer.