25 lines
1,008 B
MySQL
25 lines
1,008 B
MySQL
|
|
--
|
||
|
|
-- patch-actor-table.sql
|
||
|
|
--
|
||
|
|
-- T167246. Add an `actor` table and various columns (and temporary tables) to reference it.
|
||
|
|
|
||
|
|
CREATE SEQUENCE actor_actor_id_seq;
|
||
|
|
CREATE TABLE actor (
|
||
|
|
actor_id INTEGER NOT NULL PRIMARY KEY DEFAULT nextval('actor_actor_id_seq'),
|
||
|
|
actor_user INTEGER,
|
||
|
|
actor_name TEXT NOT NULL
|
||
|
|
);
|
||
|
|
CREATE UNIQUE INDEX actor_user ON actor (actor_user);
|
||
|
|
CREATE UNIQUE INDEX actor_name ON actor (actor_name);
|
||
|
|
|
||
|
|
CREATE TABLE revision_actor_temp (
|
||
|
|
revactor_rev INTEGER NOT NULL,
|
||
|
|
revactor_actor INTEGER NOT NULL,
|
||
|
|
revactor_timestamp TIMESTAMPTZ NOT NULL,
|
||
|
|
revactor_page INTEGER NULL REFERENCES page (page_id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
|
||
|
|
PRIMARY KEY (revactor_rev, revactor_actor)
|
||
|
|
);
|
||
|
|
CREATE UNIQUE INDEX revactor_rev ON revision_actor_temp (revactor_rev);
|
||
|
|
CREATE INDEX rev_actor_timestamp ON revision_actor_temp (revactor_actor,revactor_timestamp);
|
||
|
|
CREATE INDEX rev_page_actor_timestamp ON revision_actor_temp (revactor_page,revactor_actor,revactor_timestamp);
|