- Removed redundant cache.cache_id column (#1488528)
| | |
| | | CHANGELOG Roundcube Webmail |
| | | =========================== |
| | | |
| | | - Removed redundant cache.cache_id column (#1488528) |
| | | - Fix order of attachments in sent mail (#1488423) |
| | | - Don't show product version on login screen (can be enabled by config) |
| | | - Renamed old default skin to 'classic'. Larry is the new default skin. |
| | |
| | | CREATE TABLE [dbo].[cache] (
|
| | | [cache_id] [int] IDENTITY (1, 1) NOT NULL ,
|
| | | [user_id] [int] NOT NULL ,
|
| | | [cache_key] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
| | | [created] [datetime] NOT NULL ,
|
| | |
| | | [name] [varchar] (128) COLLATE Latin1_General_CI_AI NOT NULL ,
|
| | | [data] [text] COLLATE Latin1_General_CI_AI NOT NULL
|
| | | ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
|
| | | GO
|
| | |
|
| | | ALTER TABLE [dbo].[cache] WITH NOCHECK ADD |
| | | PRIMARY KEY CLUSTERED |
| | | (
|
| | | [cache_id]
|
| | | ) ON [PRIMARY] |
| | | GO
|
| | |
|
| | | ALTER TABLE [dbo].[cache_index] WITH NOCHECK ADD
|
| | |
| | | -- Table structure for table `cache` |
| | | |
| | | CREATE TABLE `cache` ( |
| | | `cache_id` int(10) UNSIGNED NOT NULL AUTO_INCREMENT, |
| | | `user_id` int(10) UNSIGNED NOT NULL, |
| | | `cache_key` varchar(128) /*!40101 CHARACTER SET ascii COLLATE ascii_general_ci */ NOT NULL , |
| | | `created` datetime NOT NULL DEFAULT '1000-01-01 00:00:00', |
| | | `data` longtext NOT NULL, |
| | | `user_id` int(10) UNSIGNED NOT NULL, |
| | | PRIMARY KEY(`cache_id`), |
| | | CONSTRAINT `user_id_fk_cache` FOREIGN KEY (`user_id`) |
| | | REFERENCES `users`(`user_id`) ON DELETE CASCADE ON UPDATE CASCADE, |
| | | INDEX `created_index` (`created`), |
| | |
| | | ALTER TABLE `searches` ALTER `user_id` DROP DEFAULT; |
| | | |
| | | /*!40014 SET FOREIGN_KEY_CHECKS=1 */; |
| | | |
| | | -- Updates from version 0.8 |
| | | |
| | | ALTER TABLE cache DROP COLUMN cache_id; |
| | |
| | | CREATE INDEX contactgroupmembers_contact_id_idx ON contactgroupmembers (contact_id); |
| | | |
| | | -- |
| | | -- Sequence "cache_ids" |
| | | -- Name: cache_ids; Type: SEQUENCE; Schema: public; Owner: postgres |
| | | -- |
| | | |
| | | CREATE SEQUENCE cache_ids |
| | | INCREMENT BY 1 |
| | | NO MAXVALUE |
| | | NO MINVALUE |
| | | CACHE 1; |
| | | |
| | | -- |
| | | -- Table "cache" |
| | | -- Name: cache; Type: TABLE; Schema: public; Owner: postgres |
| | | -- |
| | | |
| | | CREATE TABLE "cache" ( |
| | | cache_id integer DEFAULT nextval('cache_ids'::text) PRIMARY KEY, |
| | | user_id integer NOT NULL |
| | | REFERENCES users (user_id) ON DELETE CASCADE ON UPDATE CASCADE, |
| | | cache_key varchar(128) DEFAULT '' NOT NULL, |
| | |
| | | DROP INDEX contacts_user_id_idx; |
| | | CREATE INDEX contacts_user_id_idx ON contacts USING btree (user_id, del); |
| | | ALTER TABLE contacts ALTER email TYPE text; |
| | | |
| | | -- Updates from version 0.8 |
| | | |
| | | ALTER TABLE cache DROP COLUMN cache_id; |
| | | DROP SEQUENCE cache_ids; |
| | |
| | | -- |
| | | |
| | | CREATE TABLE cache ( |
| | | cache_id integer NOT NULL PRIMARY KEY, |
| | | user_id integer NOT NULL default 0, |
| | | cache_key varchar(128) NOT NULL default '', |
| | | created datetime NOT NULL default '0000-00-00 00:00:00', |
| | |
| | | |
| | | CREATE INDEX ix_contacts_user_id ON contacts(user_id, del); |
| | | DROP TABLE contacts_tmp; |
| | | |
| | | -- Updates from version 0.8 |
| | | |
| | | DROP TABLE cache; |
| | | CREATE TABLE cache ( |
| | | user_id integer NOT NULL default 0, |
| | | cache_key varchar(128) NOT NULL default '', |
| | | created datetime NOT NULL default '0000-00-00 00:00:00', |
| | | data text NOT NULL |
| | | ); |
| | | |
| | | CREATE INDEX ix_cache_user_cache_key ON cache(user_id, cache_key); |
| | | CREATE INDEX ix_cache_created ON cache(created); |
| | |
| | | private $packed; |
| | | private $index; |
| | | private $cache = array(); |
| | | private $cache_keys = array(); |
| | | private $cache_changes = array(); |
| | | private $cache_sums = array(); |
| | | |
| | |
| | | $this->cache = array(); |
| | | $this->cache_changed = false; |
| | | $this->cache_changes = array(); |
| | | $this->cache_keys = array(); |
| | | $this->cache_sums = array(); |
| | | } |
| | | // Remove keys by name prefix |
| | | else if ($prefix_mode) { |
| | |
| | | if (strpos($k, $key) === 0) { |
| | | $this->cache[$k] = null; |
| | | $this->cache_changes[$k] = false; |
| | | unset($this->cache_keys[$k]); |
| | | unset($this->cache_sums[$k]); |
| | | } |
| | | } |
| | | } |
| | |
| | | else { |
| | | $this->cache[$key] = null; |
| | | $this->cache_changes[$key] = false; |
| | | unset($this->cache_keys[$key]); |
| | | unset($this->cache_sums[$key]); |
| | | } |
| | | |
| | | // Remove record(s) from the backend |
| | |
| | | } |
| | | else { |
| | | $sql_result = $this->db->limitquery( |
| | | "SELECT cache_id, data, cache_key". |
| | | "SELECT data, cache_key". |
| | | " FROM ".$this->db->table_name('cache'). |
| | | " WHERE user_id = ?". |
| | | " AND cache_key = ?". |
| | |
| | | |
| | | $this->cache[$key] = $data; |
| | | $this->cache_sums[$key] = $md5sum; |
| | | $this->cache_keys[$key] = $sql_arr['cache_id']; |
| | | } |
| | | else { |
| | | $this->cache[$key] = null; |
| | |
| | | return $this->add_record($this->ckey($key), $data); |
| | | } |
| | | |
| | | $key_exists = $this->cache_keys[$key]; |
| | | $key_exists = array_key_exists($key, $this->cache_sums); |
| | | $key = $this->prefix . '.' . $key; |
| | | |
| | | // Remove NULL rows (here we don't need to check if the record exist) |