2 -- patch-comment-table.sql
4 -- T166732. Add a `comment` table and various columns (and temporary tables) to reference it.
6 CREATE TABLE /*_*/comment (
7 comment_id
bigint NOT NULL PRIMARY KEY IDENTITY(0,1),
8 comment_hash
INT NOT NULL,
9 comment_text
nvarchar(max) NOT NULL,
10 comment_data
nvarchar(max)
12 CREATE INDEX /*i*/comment_hash
ON /*_*/comment (comment_hash
);
14 -- dummy row for FKs. Hash is intentionally wrong so CommentStore won't match it.
15 INSERT INTO /*_*/comment (comment_hash
, comment_text
) VALUES (-1, '** dummy **');
18 CREATE TABLE /*_*/revision_comment_temp (
19 revcomment_rev
INT NOT NULL CONSTRAINT FK_revcomment_rev
FOREIGN KEY REFERENCES /*_*/revision(rev_id
) ON DELETE CASCADE,
20 revcomment_comment_id
bigint NOT NULL CONSTRAINT FK_revcomment_comment_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
),
21 CONSTRAINT PK_revision_comment_temp
PRIMARY KEY (revcomment_rev
, revcomment_comment_id
)
23 CREATE UNIQUE INDEX /*i*/revcomment_rev
ON /*_*/revision_comment_temp (revcomment_rev
);
26 CREATE TABLE /*_*/image_comment_temp (
27 imgcomment_name
nvarchar(255) NOT NULL CONSTRAINT FK_imgcomment_name
FOREIGN KEY REFERENCES /*_*/image(img_name
) ON DELETE CASCADE,
28 imgcomment_description_id
bigint NOT NULL CONSTRAINT FK_imgcomment_description_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
),
29 CONSTRAINT PK_image_comment_temp
PRIMARY KEY (imgcomment_name
, imgcomment_description_id
)
31 CREATE UNIQUE INDEX /*i*/imgcomment_name
ON /*_*/image_comment_temp (imgcomment_name
);
34 ALTER TABLE /*_*/revision
ADD CONSTRAINT DF_rev_comment
DEFAULT '' FOR rev_comment
;
36 ALTER TABLE /*_*/archive
ADD CONSTRAINT DF_ar_comment
DEFAULT '' FOR ar_comment
;
37 ALTER TABLE /*_*/archive
ADD ar_comment_id
bigint NOT NULL CONSTRAINT DF_ar_comment_id
DEFAULT 0 CONSTRAINT FK_ar_comment_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
);
39 ALTER TABLE /*_*/ipblocks
ADD CONSTRAINT DF_ipb_reason
DEFAULT '' FOR ipb_reason
;
40 ALTER TABLE /*_*/ipblocks
ADD ipb_reason_id
bigint NOT NULL CONSTRAINT DF_ipb_reason_id
DEFAULT 0 CONSTRAINT FK_ipb_reason_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
);
42 ALTER TABLE /*_*/image
ADD CONSTRAINT DF_img_description
DEFAULT '' FOR img_description
;
44 ALTER TABLE /*_*/oldimage
ADD CONSTRAINT DF_oi_description
DEFAULT '' FOR oi_description
;
45 ALTER TABLE /*_*/oldimage
ADD oi_description_id
bigint NOT NULL CONSTRAINT DF_oi_description_id
DEFAULT 0 CONSTRAINT FK_oi_description_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
);
47 ALTER TABLE /*_*/filearchive
ADD CONSTRAINT DF_fa_deleted_reason
DEFAULT '' FOR fa_deleted_reason
;
48 ALTER TABLE /*_*/filearchive
ADD fa_deleted_reason_id
bigint NOT NULL CONSTRAINT DF_fa_deleted_reason_id
DEFAULT 0 CONSTRAINT FK_fa_deleted_reason_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
);
49 ALTER TABLE /*_*/filearchive
ADD CONSTRAINT DF_fa_description
DEFAULT '' FOR fa_description
;
50 ALTER TABLE /*_*/filearchive
ADD fa_description_id
bigint NOT NULL CONSTRAINT DF_fa_description_id
DEFAULT 0 CONSTRAINT FK_fa_description_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
);
52 ALTER TABLE /*_*/recentchanges
ADD rc_comment_id
bigint NOT NULL CONSTRAINT DF_rc_comment_id
DEFAULT 0 CONSTRAINT FK_rc_comment_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
);
54 ALTER TABLE /*_*/logging
ADD log_comment_id
bigint NOT NULL CONSTRAINT DF_log_comment_id
DEFAULT 0 CONSTRAINT FK_log_comment_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
);
56 ALTER TABLE /*_*/protected_titles
ADD CONSTRAINT DF_pt_reason
DEFAULT '' FOR pt_reason
;
57 ALTER TABLE /*_*/protected_titles
ADD pt_reason_id
bigint NOT NULL CONSTRAINT DF_pt_reason_id
DEFAULT 0 CONSTRAINT FK_pt_reason_id
FOREIGN KEY REFERENCES /*_*/comment(comment_id
);