--- /dev/null
+-- \r
+-- patch-indexes.sql\r
+-- \r
+-- Add data to allow for direct reference to old images\r
+-- They can be included into pages\r
+-- \r
+\r
+ALTER TABLE /*$wgDBprefix*/oldimage\r
+ DROP INDEX oi_name,\r
+ ADD INDEX oi_name_timestamp (oi_name,oi_timestamp),\r
+ ADD INDEX oi_name_archive_name (oi_name,oi_archive_name),\r
+ ADD oi_metadata mediumblob NOT NULL,\r
+ ADD oi_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,\r
+ ADD oi_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",\r
+ ADD oi_minor_mime varchar(32) NOT NULL default "unknown",\r
+ ADD oi_deleted tinyint(1) unsigned NOT NULL default '0',
\ No newline at end of file
oi_description CLOB,
oi_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL,
oi_user_text CLOB NOT NULL,
- oi_timestamp TIMESTAMP WITH TIME ZONE NOT NULL
-);
-CREATE INDEX oi_name ON oldimage (oi_name);
+ oi_timestamp TIMESTAMP WITH TIME ZONE NOT NULL,
+ oi_metadata CLOB,
+ oi_media_type VARCHAR(10) DEFAULT NULL,
+ oi_major_mime VARCHAR(11) DEFAULT 'unknown',
+ oi_minor_mime VARCHAR(32) DEFAULT 'unknown',
+ oi_deleted INTEGER DEFAULT 0 NOT NULL
+);
+CREATE INDEX oi_name_timestamp ON oldimage (oi_name,oi_timestamp);
+CREATE INDEX oi_name_archive_name ON oldimage (oi_name,oi_archive_name);
CREATE SEQUENCE filearchive_fa_id_seq;
CREATE TABLE filearchive (
oi_description TEXT,
oi_user INTEGER NULL REFERENCES mwuser(user_id) ON DELETE SET NULL,
oi_user_text TEXT NOT NULL,
- oi_timestamp TIMESTAMPTZ NOT NULL
-);
-CREATE INDEX oi_name ON oldimage (oi_name);
+ oi_timestamp TIMESTAMPTZ NOT NULL,
+ oi_metadata BYTEA NOT NULL,
+ oi_media_type TEXT NULL,
+ oi_major_mime TEXT NOT NULL DEFAULT 'unknown',
+ oi_minor_mime TEXT NOT NULL DEFAULT 'unknown',
+ oi_deleted CHAR NOT NULL DEFAULT '0'
+);
+CREATE INDEX oi_name_timestamp ON oldimage (oi_name,oi_timestamp);
+CREATE INDEX oi_name_archive_name ON oldimage (oi_name,oi_archive_name);
CREATE TABLE filearchive (
oi_user_text varchar(255) binary NOT NULL,
oi_timestamp char(14) binary NOT NULL default '',
- INDEX oi_name (oi_name(10))
+ oi_metadata mediumblob NOT NULL,
+ oi_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
+ oi_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
+ oi_minor_mime varchar(32) NOT NULL default "unknown",
+ oi_deleted tinyint(1) unsigned NOT NULL default '0',
+
+ INDEX oi_name_timestamp (oi_name,oi_timestamp),
+ INDEX oi_name_archive_name (oi_name,oi_archive_name)
) /*$wgDBTableOptions*/;