2 -- patch-actor-table.sql
4 -- T167246. Add an `actor` table and various columns (and temporary tables) to reference it.
6 CREATE TABLE /*_*/actor (
7 actor_id
bigint unsigned
NOT NULL CONSTRAINT PK_actor
PRIMARY KEY IDENTITY(0,1),
8 actor_user
int unsigned
,
9 actor_name
nvarchar(255) NOT NULL
11 CREATE UNIQUE INDEX /*i*/actor_user
ON /*_*/actor (actor_user
);
12 CREATE UNIQUE INDEX /*i*/actor_name
ON /*_*/actor (actor_name
);
15 INSERT INTO /*_*/actor (actor_name
) VALUES ('##Anonymous##');
17 CREATE TABLE /*_*/revision_actor_temp (
18 revactor_rev
int unsigned
NOT NULL CONSTRAINT FK_revactor_rev
FOREIGN KEY REFERENCES /*_*/revision(rev_id
) ON DELETE CASCADE,
19 revactor_actor
bigint unsigned
NOT NULL,
20 revactor_timestamp
varchar(14) NOT NULL CONSTRAINT DF_revactor_timestamp
DEFAULT '',
21 revactor_page
int unsigned
NOT NULL,
22 CONSTRAINT PK_revision_actor_temp
PRIMARY KEY (revactor_rev
, revactor_actor
)
24 CREATE UNIQUE INDEX /*i*/revactor_rev
ON /*_*/revision_actor_temp (revactor_rev
);
25 CREATE INDEX /*i*/actor_timestamp
ON /*_*/revision_actor_temp (revactor_actor
,revactor_timestamp
);
26 CREATE INDEX /*i*/page_actor_timestamp
ON /*_*/revision_actor_temp (revactor_page
,revactor_actor
,revactor_timestamp
);
28 ALTER TABLE /*_*/archive
ADD CONSTRAINT DF_ar_user_text
DEFAULT '' FOR ar_user_text
;
29 ALTER TABLE /*_*/archive
ADD ar_actor
bigint unsigned
NOT NULL CONSTRAINT DF_ar_actor
DEFAULT 0;
30 CREATE INDEX /*i*/ar_actor_timestamp
ON /*_*/archive (ar_actor
,ar_timestamp
);
32 ALTER TABLE /*_*/ipblocks
ADD ipb_by_actor
bigint unsigned
NOT NULL CONSTRAINT DF_ipb_by_actor
DEFAULT 0;
34 ALTER TABLE /*_*/image
ADD CONSTRAINT DF_img_user_text
DEFAULT '' FOR img_user_text
;
35 ALTER TABLE /*_*/image
ADD img_actor
bigint unsigned
NOT NULL CONSTRAINT DF_img_actor
DEFAULT 0;
36 CREATE INDEX /*i*/img_actor_timestamp
ON /*_*/image (img_actor
, img_timestamp
);
38 ALTER TABLE /*_*/oldimage
ADD CONSTRAINT DF_oi_user_text
DEFAULT '' FOR oi_user_text
;
39 ALTER TABLE /*_*/oldimage
ADD oi_actor
bigint unsigned
NOT NULL CONSTRAINT DF_oi_actor
DEFAULT 0;
40 CREATE INDEX /*i*/oi_actor_timestamp
ON /*_*/oldimage (oi_actor
,oi_timestamp
);
42 ALTER TABLE /*_*/filearchive
ADD CONSTRAINT DF_fa_user_text
DEFAULT '' FOR fa_user_text
;
43 ALTER TABLE /*_*/filearchive
ADD fa_actor
bigint unsigned
NOT NULL CONSTRAINT DF_fa_actor
DEFAULT 0;
44 CREATE INDEX /*i*/fa_actor_timestamp
ON /*_*/filearchive (fa_actor
,fa_timestamp
);
46 ALTER TABLE /*_*/recentchanges
ADD CONSTRAINT DF_rc_user_text
DEFAULT '' FOR rc_user_text
;
47 ALTER TABLE /*_*/recentchanges
ADD rc_actor
bigint unsigned
NOT NULL CONSTRAINT DF_rc_actor
DEFAULT 0;
48 CREATE INDEX /*i*/rc_ns_actor
ON /*_*/recentchanges (rc_namespace
, rc_actor
);
49 CREATE INDEX /*i*/rc_actor
ON /*_*/recentchanges (rc_actor
, rc_timestamp
);
51 ALTER TABLE /*_*/logging
ADD log_actor
bigint unsigned
NOT NULL CONSTRAINT DF_log_actor
DEFAULT 0;
52 CREATE INDEX /*i*/actor_time
ON /*_*/logging (log_actor
, log_timestamp
);
53 CREATE INDEX /*i*/log_actor_type_time
ON /*_*/logging (log_actor
, log_type
, log_timestamp
);