Fix database cache expunge issues (#1489149) - added 'expires' column
parent
d186405c00
commit
60b6d7c389
@ -0,0 +1,44 @@
|
||||
ALTER TABLE [dbo].[cache] ADD COLUMN [expires] [datetime] NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_shared] ADD COLUMN [expires] [datetime] NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_index] ADD COLUMN [expires] [datetime] NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_thread] ADD COLUMN [expires] [datetime] NULL
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_messages] ADD COLUMN [expires] [datetime] NULL
|
||||
GO
|
||||
|
||||
UPDATE [dbo].[cache] SET [expires] = DATEADD(second, 604800, [created])
|
||||
GO
|
||||
UPDATE [dbo].[cache_shared] SET [expires] = DATEADD(second, 604800, [created])
|
||||
GO
|
||||
UPDATE [dbo].[cache_index] SET [expires] = DATEADD(second, 604800, [changed])
|
||||
GO
|
||||
UPDATE [dbo].[cache_thread] SET [expires] = DATEADD(second, 604800, [changed])
|
||||
GO
|
||||
UPDATE [dbo].[cache_messages] SET [expires] = DATEADD(second, 604800, [changed])
|
||||
GO
|
||||
|
||||
DROP INDEX [IX_cache_created]
|
||||
GO
|
||||
DROP INDEX [IX_cache_shared_created]
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_index] DROP COLUMN [changed]
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_thread] DROP COLUMN [changed]
|
||||
GO
|
||||
ALTER TABLE [dbo].[cache_messages] DROP COLUMN [changed]
|
||||
GO
|
||||
|
||||
CREATE INDEX [IX_cache_expires] ON [dbo].[cache]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_cache_shared_expires] ON [dbo].[cache_shared]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_cache_index_expires] ON [dbo].[cache_index]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_cache_thread_expires] ON [dbo].[cache_thread]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
CREATE INDEX [IX_cache_messages_expires] ON [dbo].[cache_messages]([expires]) ON [PRIMARY]
|
||||
GO
|
||||
|
@ -0,0 +1,24 @@
|
||||
ALTER TABLE `cache` ADD `expires` datetime DEFAULT NULL;
|
||||
ALTER TABLE `cache_shared` ADD `expires` datetime DEFAULT NULL;
|
||||
ALTER TABLE `cache_index` ADD `expires` datetime DEFAULT NULL;
|
||||
ALTER TABLE `cache_thread` ADD `expires` datetime DEFAULT NULL;
|
||||
ALTER TABLE `cache_messages` ADD `expires` datetime DEFAULT NULL;
|
||||
|
||||
-- initialize expires column with created/changed date + 7days
|
||||
UPDATE `cache` SET `expires` = `created` + interval 604800 second;
|
||||
UPDATE `cache_shared` SET `expires` = `created` + interval 604800 second;
|
||||
UPDATE `cache_index` SET `expires` = `changed` + interval 604800 second;
|
||||
UPDATE `cache_thread` SET `expires` = `changed` + interval 604800 second;
|
||||
UPDATE `cache_messages` SET `expires` = `changed` + interval 604800 second;
|
||||
|
||||
ALTER TABLE `cache` DROP INDEX `created_index`;
|
||||
ALTER TABLE `cache_shared` DROP INDEX `created_index`;
|
||||
ALTER TABLE `cache_index` DROP `changed`;
|
||||
ALTER TABLE `cache_thread` DROP `changed`;
|
||||
ALTER TABLE `cache_messages` DROP `changed`;
|
||||
|
||||
ALTER TABLE `cache` ADD INDEX `expires_index` (`expires`);
|
||||
ALTER TABLE `cache_shared` ADD INDEX `expires_index` (`expires`);
|
||||
ALTER TABLE `cache_index` ADD INDEX `expires_index` (`expires`);
|
||||
ALTER TABLE `cache_thread` ADD INDEX `expires_index` (`expires`);
|
||||
ALTER TABLE `cache_messages` ADD INDEX `expires_index` (`expires`);
|
@ -0,0 +1,24 @@
|
||||
ALTER TABLE "cache" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "cache_shared" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "cache_index" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "cache_thread" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
ALTER TABLE "cache_messages" ADD expires timestamp with time zone DEFAULT NULL;
|
||||
|
||||
-- initialize expires column with created/changed date + 7days
|
||||
UPDATE "cache" SET expires = created + interval '604800 seconds';
|
||||
UPDATE "cache_shared" SET expires = created + interval '604800 seconds';
|
||||
UPDATE "cache_index" SET expires = changed + interval '604800 seconds';
|
||||
UPDATE "cache_thread" SET expires = changed + interval '604800 seconds';
|
||||
UPDATE "cache_messages" SET expires = changed + interval '604800 seconds';
|
||||
|
||||
DROP INDEX cache_created_idx;
|
||||
DROP INDEX cache_shared_created_idx;
|
||||
ALTER TABLE "cache_index" DROP "changed";
|
||||
ALTER TABLE "cache_thread" DROP "changed";
|
||||
ALTER TABLE "cache_messages" DROP "changed";
|
||||
|
||||
CREATE INDEX cache_expires_idx ON "cache" (expires);
|
||||
CREATE INDEX cache_shared_expires_idx ON "cache_shared" (expires);
|
||||
CREATE INDEX cache_index_expires_idx ON "cache_index" (expires);
|
||||
CREATE INDEX cache_thread_expires_idx ON "cache_thread" (expires);
|
||||
CREATE INDEX cache_messages_expires_idx ON "cache_messages" (expires);
|
@ -0,0 +1,48 @@
|
||||
DROP TABLE cache_index;
|
||||
DROP TABLE cache_thread;
|
||||
DROP TABLE cache_messages;
|
||||
|
||||
ALTER TABLE cache ADD expires datetime DEFAULT NULL;
|
||||
DROP INDEX ix_cache_created;
|
||||
|
||||
ALTER TABLE cache_shared ADD expires datetime DEFAULT NULL;
|
||||
DROP INDEX ix_cache_shared_created;
|
||||
|
||||
UPDATE cache SET expires = datetime(created, '+604800 seconds');
|
||||
UPDATE cache_shared SET expires = datetime(created, '+604800 seconds');
|
||||
|
||||
CREATE INDEX ix_cache_expires ON cache(expires);
|
||||
CREATE INDEX ix_cache_shared_expires ON cache_shared(expires);
|
||||
|
||||
CREATE TABLE cache_index (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
valid smallint NOT NULL DEFAULT '0',
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_index_expires ON cache_index (expires);
|
||||
|
||||
CREATE TABLE cache_thread (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
PRIMARY KEY (user_id, mailbox)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_thread_expires ON cache_thread (expires);
|
||||
|
||||
CREATE TABLE cache_messages (
|
||||
user_id integer NOT NULL,
|
||||
mailbox varchar(255) NOT NULL,
|
||||
uid integer NOT NULL,
|
||||
expires datetime DEFAULT NULL,
|
||||
data text NOT NULL,
|
||||
flags integer NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (user_id, mailbox, uid)
|
||||
);
|
||||
|
||||
CREATE INDEX ix_cache_messages_expires ON cache_messages (expires);
|
Loading…
Reference in New Issue