summaryrefslogtreecommitdiff
path: root/www/wiki/maintenance/postgres/archives/patch-actor-table.sql
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/maintenance/postgres/archives/patch-actor-table.sql')
-rw-r--r--www/wiki/maintenance/postgres/archives/patch-actor-table.sql24
1 files changed, 24 insertions, 0 deletions
diff --git a/www/wiki/maintenance/postgres/archives/patch-actor-table.sql b/www/wiki/maintenance/postgres/archives/patch-actor-table.sql
new file mode 100644
index 00000000..68e5d26b
--- /dev/null
+++ b/www/wiki/maintenance/postgres/archives/patch-actor-table.sql
@@ -0,0 +1,24 @@
+--
+-- 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);