diff options
Diffstat (limited to 'www/wiki/maintenance/mssql/archives/patch-oldimage-schema.sql')
-rw-r--r-- | www/wiki/maintenance/mssql/archives/patch-oldimage-schema.sql | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/www/wiki/maintenance/mssql/archives/patch-oldimage-schema.sql b/www/wiki/maintenance/mssql/archives/patch-oldimage-schema.sql new file mode 100644 index 00000000..3391c1bf --- /dev/null +++ b/www/wiki/maintenance/mssql/archives/patch-oldimage-schema.sql @@ -0,0 +1,91 @@ +-- MediaWiki looks for lines ending with semicolons and sends them as separate queries +-- However here we *really* need this all to be sent as a single batch. As such, DO NOT +-- remove the -- from the end of each statement. + +DECLARE @temp table ( + oi_name varbinary(255), + oi_archive_name varbinary(255), + oi_size int, + oi_width int, + oi_height int, + oi_bits int, + oi_description nvarchar(255), + oi_user int, + oi_user_text nvarchar(255), + oi_timestamp varchar(14), + oi_metadata nvarchar(max), + oi_media_type varchar(16), + oi_major_mime varchar(16), + oi_minor_mime nvarchar(100), + oi_deleted tinyint, + oi_sha1 nvarchar(32) +);-- + +INSERT INTO @temp +SELECT * FROM /*_*/oldimage;-- + +DROP TABLE /*_*/oldimage;-- + +CREATE TABLE /*_*/oldimage ( + oi_name nvarchar(255) NOT NULL default '', + oi_archive_name nvarchar(255) NOT NULL default '', + oi_size int NOT NULL default 0, + oi_width int NOT NULL default 0, + oi_height int NOT NULL default 0, + oi_bits int NOT NULL default 0, + oi_description nvarchar(255) NOT NULL, + oi_user int REFERENCES /*_*/mwuser(user_id), + oi_user_text nvarchar(255) NOT NULL, + oi_timestamp varchar(14) NOT NULL default '', + oi_metadata varbinary(max) NOT NULL, + oi_media_type varchar(16) default null, + oi_major_mime varchar(16) not null default 'unknown', + oi_minor_mime nvarchar(100) NOT NULL default 'unknown', + oi_deleted tinyint NOT NULL default 0, + oi_sha1 nvarchar(32) NOT NULL default '', + CONSTRAINT oi_major_mime_ckc check (oi_major_mime IN('unknown', 'application', 'audio', 'image', 'text', 'video', 'message', 'model', 'multipart', 'chemical')), + CONSTRAINT oi_media_type_ckc check (oi_media_type IN('UNKNOWN', 'BITMAP', 'DRAWING', 'AUDIO', 'VIDEO', 'MULTIMEDIA', 'OFFICE', 'TEXT', 'EXECUTABLE', 'ARCHIVE')) +);-- + +CREATE INDEX /*i*/oi_usertext_timestamp ON /*_*/oldimage (oi_user_text, oi_timestamp);-- +CREATE INDEX /*i*/oi_name_timestamp ON /*_*/oldimage (oi_name, oi_timestamp);-- +CREATE INDEX /*i*/oi_name_archive_name ON /*_*/oldimage (oi_name, oi_archive_name);-- +CREATE INDEX /*i*/oi_sha1 ON /*_*/oldimage (oi_sha1);-- + +INSERT INTO /*_*/oldimage +( + oi_name, + oi_archive_name, + oi_size, + oi_width, + oi_height, + oi_bits, + oi_description, + oi_user, + oi_user_text, + oi_timestamp, + oi_metadata, + oi_media_type, + oi_major_mime, + oi_minor_mime, + oi_deleted, + oi_sha1 +) +SELECT + oi_name, + oi_archive_name, + oi_size, + oi_width, + oi_height, + oi_bits, + oi_description, + oi_user, + oi_user_text, + oi_timestamp, + CONVERT(varbinary(max), oi_metadata, 0), + oi_media_type, + oi_major_mime, + oi_minor_mime, + oi_deleted, + oi_sha1 +FROM @temp t; |