Aleksander Machniak
2012-08-06 83121ece3348bfe09bb1026eace79a74a5ccf2c9
- Removed redundant cache.cache_id column (#1488528)
9 files modified
60 ■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
SQL/mssql.initial.sql 8 ●●●●● patch | view | raw | blame | history
SQL/mysql.initial.sql 4 ●●● patch | view | raw | blame | history
SQL/mysql.update.sql 4 ●●●● patch | view | raw | blame | history
SQL/postgres.initial.sql 12 ●●●●● patch | view | raw | blame | history
SQL/postgres.update.sql 5 ●●●●● patch | view | raw | blame | history
SQL/sqlite.initial.sql 1 ●●●● patch | view | raw | blame | history
SQL/sqlite.update.sql 13 ●●●●● patch | view | raw | blame | history
program/include/rcube_cache.php 12 ●●●●● patch | view | raw | blame | history
CHANGELOG
@@ -1,6 +1,7 @@
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.
SQL/mssql.initial.sql
@@ -1,5 +1,4 @@
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 ,
@@ -115,13 +114,6 @@
    [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 
SQL/mysql.initial.sql
@@ -36,12 +36,10 @@
-- 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`),
SQL/mysql.update.sql
@@ -239,3 +239,7 @@
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;
SQL/postgres.initial.sql
@@ -160,23 +160,11 @@
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,
SQL/postgres.update.sql
@@ -175,3 +175,8 @@
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;
SQL/sqlite.initial.sql
@@ -5,7 +5,6 @@
-- 
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',
SQL/sqlite.update.sql
@@ -333,3 +333,16 @@
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);
program/include/rcube_cache.php
@@ -45,7 +45,6 @@
    private $packed;
    private $index;
    private $cache         = array();
    private $cache_keys    = array();
    private $cache_changes = array();
    private $cache_sums    = array();
@@ -167,7 +166,7 @@
            $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) {
@@ -175,7 +174,7 @@
                if (strpos($k, $key) === 0) {
                    $this->cache[$k] = null;
                    $this->cache_changes[$k] = false;
                    unset($this->cache_keys[$k]);
                    unset($this->cache_sums[$k]);
                }
            }
        }
@@ -183,7 +182,7 @@
        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
@@ -274,7 +273,7 @@
        }
        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 = ?".
@@ -296,7 +295,6 @@
                $this->cache[$key]      = $data;
                $this->cache_sums[$key] = $md5sum;
                $this->cache_keys[$key] = $sql_arr['cache_id'];
            }
            else {
                $this->cache[$key] = null;
@@ -325,7 +323,7 @@
            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)