Changeset dcf780a in github
- Timestamp:
- Nov 22, 2008 1:06:13 PM (4 years ago)
- Branches:
- master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
- Children:
- d59aaa1
- Parents:
- 3e48d2ee
- Files:
-
- 9 edited
-
SQL/mssql.initial.sql (modified) (3 diffs)
-
SQL/mysql.initial.sql (modified) (1 diff)
-
SQL/mysql.update.sql (modified) (1 diff)
-
SQL/mysql5.initial.sql (modified) (2 diffs)
-
SQL/postgres.initial.sql (modified) (2 diffs)
-
SQL/postgres.update.sql (modified) (1 diff)
-
SQL/sqlite.initial.sql (modified) (1 diff)
-
program/include/rcube_imap.php (modified) (3 diffs)
-
program/include/session.inc (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
SQL/mssql.initial.sql
r3e48d2ee rdcf780a 2 2 [cache_id] [int] IDENTITY (1, 1) NOT NULL , 3 3 [user_id] [int] NOT NULL , 4 [session_id] [varchar] (32) COLLATE Latin1_General_CI_AI NULL ,5 4 [cache_key] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL , 6 5 [created] [datetime] NOT NULL , … … 120 119 ALTER TABLE [dbo].[cache] ADD 121 120 CONSTRAINT [DF_cache_user_id] DEFAULT ('0') FOR [user_id], 122 CONSTRAINT [DF_cache_session_id] DEFAULT (null) FOR [session_id],123 121 CONSTRAINT [DF_cache_cache_key] DEFAULT ('') FOR [cache_key], 124 122 CONSTRAINT [DF_cache_created] DEFAULT (getdate()) FOR [created] … … 129 127 130 128 CREATE INDEX [IX_cache_cache_key] ON [dbo].[cache]([cache_key]) ON [PRIMARY] 131 GO132 133 CREATE INDEX [IX_cache_session_id] ON [dbo].[cache]([session_id]) ON [PRIMARY]134 129 GO 135 130 -
SQL/mysql.initial.sql
r3e48d2ee rdcf780a 12 12 `cache_id` int(10) unsigned NOT NULL auto_increment, 13 13 `user_id` int(10) unsigned NOT NULL default '0', 14 `session_id` varchar(40) default NULL,15 14 `cache_key` varchar(128) NOT NULL default '', 16 15 `created` datetime NOT NULL default '0000-00-00 00:00:00', -
SQL/mysql.update.sql
r3e48d2ee rdcf780a 35 35 36 36 ALTER 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 42 39 ALTER TABLE `session` 43 40 ADD INDEX `changed_index` (`changed`); -
SQL/mysql5.initial.sql
r3e48d2ee rdcf780a 69 69 CREATE TABLE `cache` ( 70 70 `cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, 71 `session_id` varchar(40) CHARACTER SET ascii COLLATE ascii_general_ci,72 71 `cache_key` varchar(128) CHARACTER SET ascii COLLATE ascii_general_ci NOT NULL, 73 72 `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', … … 78 77 CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`) 79 78 REFERENCES `users`(`user_id`) 80 ON DELETE CASCADE81 ON UPDATE CASCADE,82 CONSTRAINT `session_id_fk_cache` FOREIGN KEY (`session_id`)83 REFERENCES `session`(`sess_id`)84 79 ON DELETE CASCADE 85 80 ON UPDATE CASCADE -
SQL/postgres.initial.sql
r3e48d2ee rdcf780a 130 130 cache_id integer DEFAULT nextval('cache_ids'::text) PRIMARY KEY, 131 131 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,133 132 cache_key character varying(128) DEFAULT ''::character varying NOT NULL, 134 133 created timestamp with time zone DEFAULT now() NOT NULL, … … 137 136 138 137 CREATE INDEX cache_user_id_idx ON "cache" (user_id, cache_key); 139 CREATE INDEX cache_session_id_idx ON "cache" (session_id);140 138 141 139 -- -
SQL/postgres.update.sql
r3e48d2ee rdcf780a 25 25 -- Updates from version 0.2-beta 26 26 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; 27 ALTER TABLE cache DROP session_id; 29 28 30 CREATE INDEX cache_session_id_idx ON cache (session_id);31 29 CREATE INDEX session_changed_idx ON session (changed); -
SQL/sqlite.initial.sql
r3e48d2ee rdcf780a 12 12 cache_id integer NOT NULL PRIMARY KEY, 13 13 user_id integer NOT NULL default 0, 14 session_id varchar(40) default NULL,15 14 cache_key varchar(128) NOT NULL default '', 16 15 created datetime NOT NULL default '0000-00-00 00:00:00', -
program/include/rcube_imap.php
r3e48d2ee rdcf780a 2147 2147 $this->db->query( 2148 2148 "UPDATE ".get_table_name('cache')." 2149 SET created=". $this->db-> fromunixtime(time()).", data=?, session_id=?2149 SET created=". $this->db->now().", data=? 2150 2150 WHERE user_id=? 2151 2151 AND cache_key=?", 2152 2152 $data, 2153 session_id(),2154 2153 $_SESSION['user_id'], 2155 2154 $key); … … 2160 2159 $this->db->query( 2161 2160 "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().", ?, ?, ?)", 2164 2163 $_SESSION['user_id'], 2165 2164 $key, 2166 $data, 2167 session_id()); 2165 $data); 2168 2166 } 2169 2167 } … … 2375 2373 "INSERT INTO ".get_table_name('messages')." 2376 2374 (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).", ?, ?, ?)", 2378 2376 $_SESSION['user_id'], 2379 2377 $key, -
program/include/session.inc
r3e48d2ee rdcf780a 112 112 $DB->query("DELETE FROM " . get_table_name('session') . " WHERE sess_id=?", $key); 113 113 114 // delete session entries in cache table115 // on databases wthout foreign keys116 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 120 114 return true; 121 115 } … … 132 126 } 133 127 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')) 160 129 rcmail_message_cache_gc(); 161 }162 130 163 131 // just delete all expired sessions
Note: See TracChangeset
for help on using the changeset viewer.
