1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
-- 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 (
img_name varbinary(255),
img_size int,
img_width int,
img_height int,
img_metadata varbinary(max),
img_bits int,
img_media_type varchar(16),
img_major_mime varchar(16),
img_minor_mime nvarchar(100),
img_description nvarchar(255),
img_user int,
img_user_text nvarchar(255),
img_timestamp nvarchar(14),
img_sha1 nvarchar(32)
);--
INSERT INTO @temp
SELECT * FROM /*_*/image;--
DROP TABLE /*_*/image;--
CREATE TABLE /*_*/image (
img_name nvarchar(255) NOT NULL default '' PRIMARY KEY,
img_size int NOT NULL default 0,
img_width int NOT NULL default 0,
img_height int NOT NULL default 0,
img_metadata varbinary(max) NOT NULL,
img_bits int NOT NULL default 0,
img_media_type varchar(16) default null,
img_major_mime varchar(16) not null default 'unknown',
img_minor_mime nvarchar(100) NOT NULL default 'unknown',
img_description nvarchar(255) NOT NULL,
img_user int REFERENCES /*_*/mwuser(user_id) ON DELETE SET NULL,
img_user_text nvarchar(255) NOT NULL,
img_timestamp nvarchar(14) NOT NULL default '',
img_sha1 nvarchar(32) NOT NULL default '',
CONSTRAINT img_major_mime_ckc check (img_major_mime IN('unknown', 'application', 'audio', 'image', 'text', 'video', 'message', 'model', 'multipart', 'chemical')),
CONSTRAINT img_media_type_ckc check (img_media_type in('UNKNOWN', 'BITMAP', 'DRAWING', 'AUDIO', 'VIDEO', 'MULTIMEDIA', 'OFFICE', 'TEXT', 'EXECUTABLE', 'ARCHIVE'))
);--
CREATE INDEX /*i*/img_usertext_timestamp ON /*_*/image (img_user_text,img_timestamp);--
CREATE INDEX /*i*/img_size ON /*_*/image (img_size);--
CREATE INDEX /*i*/img_timestamp ON /*_*/image (img_timestamp);--
CREATE INDEX /*i*/img_sha1 ON /*_*/image (img_sha1);--
CREATE INDEX /*i*/img_media_mime ON /*_*/image (img_media_type,img_major_mime,img_minor_mime);--
INSERT INTO /*_*/image
(
img_name,
img_size,
img_width,
img_height,
img_metadata,
img_bits,
img_media_type,
img_major_mime,
img_minor_mime,
img_description,
img_user,
img_user_text,
img_timestamp,
img_sha1
)
SELECT
img_name,
img_size,
img_width,
img_height,
img_metadata,
img_bits,
img_media_type,
img_major_mime,
img_minor_mime,
img_description,
img_user,
img_user_text,
img_timestamp,
img_sha1
FROM @temp t;
|