2004-09-03 11:53:46 +00:00
|
|
|
-- $Id$
|
2004-06-07 01:41:15 +00:00
|
|
|
--
|
2004-09-03 11:53:46 +00:00
|
|
|
-- Database schema for MediaWiki PostgreSQL support
|
2004-06-07 01:41:15 +00:00
|
|
|
--
|
|
|
|
|
--
|
|
|
|
|
|
2004-09-26 09:03:45 +00:00
|
|
|
CREATE SCHEMA mediawiki;
|
|
|
|
|
SET search_path=mediawiki;
|
|
|
|
|
|
2004-06-07 01:41:15 +00:00
|
|
|
CREATE TABLE cur (
|
2004-09-03 11:53:46 +00:00
|
|
|
cur_id serial PRIMARY KEY,
|
|
|
|
|
cur_namespace smallint NOT NULL,
|
|
|
|
|
cur_title varchar(255) NOT NULL,
|
|
|
|
|
cur_text text NOT NULL,
|
|
|
|
|
cur_comment text,
|
2004-09-09 08:33:00 +00:00
|
|
|
cur_user integer DEFAULT 0 NOT NULL,
|
2004-09-15 07:14:38 +00:00
|
|
|
cur_user_text varchar(255) DEFAULT ''::varchar NOT NULL,
|
2004-09-03 11:53:46 +00:00
|
|
|
cur_timestamp timestamp without time zone NOT NULL,
|
2004-09-15 07:14:38 +00:00
|
|
|
cur_restrictions text DEFAULT ''::text NOT NULL,
|
2004-09-03 11:53:46 +00:00
|
|
|
cur_counter bigint DEFAULT 0 NOT NULL,
|
|
|
|
|
cur_is_redirect smallint DEFAULT 0 NOT NULL,
|
|
|
|
|
cur_minor_edit smallint DEFAULT 0 NOT NULL,
|
|
|
|
|
cur_is_new smallint DEFAULT 0 NOT NULL,
|
2004-09-26 09:03:45 +00:00
|
|
|
cur_random double precision DEFAULT random(),
|
2004-09-03 11:53:46 +00:00
|
|
|
cur_touched timestamp without time zone,
|
|
|
|
|
inverse_timestamp varchar(14)
|
|
|
|
|
);
|
|
|
|
|
CREATE INDEX cur_title_namespace_idx ON cur (cur_title, cur_namespace);
|
|
|
|
|
CREATE INDEX cur_random_idx ON cur (cur_random);
|
|
|
|
|
CREATE INDEX cur_name_title_timestamp_idx ON cur (cur_namespace, cur_title, cur_timestamp);
|
|
|
|
|
CREATE INDEX cur_timestamp_idx ON cur (cur_timestamp);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
|
|
|
|
CREATE TABLE "old" (
|
2004-09-03 11:53:46 +00:00
|
|
|
old_id serial PRIMARY KEY,
|
|
|
|
|
old_namespace smallint NOT NULL,
|
|
|
|
|
old_title varchar(255) NOT NULL,
|
|
|
|
|
old_text text NOT NULL,
|
|
|
|
|
old_comment text NOT NULL,
|
|
|
|
|
old_user integer NOT NULL,
|
|
|
|
|
old_user_text varchar(255) NOT NULL,
|
|
|
|
|
old_timestamp timestamp without time zone NOT NULL,
|
|
|
|
|
old_minor_edit smallint NOT NULL,
|
|
|
|
|
old_flags text NOT NULL,
|
|
|
|
|
inverse_timestamp varchar(14) NOT NULL
|
|
|
|
|
);
|
|
|
|
|
CREATE INDEX old_name_title_ts_idx ON "old" (old_namespace, old_title, old_timestamp);
|
|
|
|
|
CREATE INDEX old_timestamp ON "old" (old_timestamp);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE brokenlinks (
|
|
|
|
|
bl_from integer DEFAULT 0 NOT NULL,
|
|
|
|
|
bl_to varchar(255) NOT NULL,
|
|
|
|
|
PRIMARY KEY (bl_from,bl_to)
|
2004-06-07 01:41:15 +00:00
|
|
|
|
|
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE INDEX bl_to_idx ON brokenlinks (bl_to);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE hitcounter (
|
|
|
|
|
hc_id bigint DEFAULT 0 NOT NULL
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE INDEX hc_id_idx on hitcounter (hc_id);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE image (
|
|
|
|
|
img_name varchar(255) PRIMARY KEY,
|
|
|
|
|
img_size integer NOT NULL,
|
|
|
|
|
img_description text NOT NULL,
|
|
|
|
|
img_user integer NOT NULL,
|
|
|
|
|
img_user_text varchar(255) NOT NULL,
|
|
|
|
|
img_timestamp timestamp without time zone
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE INDEX img_size_idx ON image (img_size);
|
|
|
|
|
CREATE INDEX img_timestamp ON image (img_timestamp);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
|
|
|
|
CREATE TABLE imagelinks (
|
2004-09-03 11:53:46 +00:00
|
|
|
il_from integer,
|
|
|
|
|
il_to varchar(255),
|
|
|
|
|
PRIMARY KEY (il_from, il_to)
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE INDEX il_to_idx ON imagelinks (il_to);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE categorylinks (
|
|
|
|
|
cl_from integer DEFAULT 0 NOT NULL,
|
2004-09-03 11:53:46 +00:00
|
|
|
cl_to varchar(255) NOT NULL,
|
|
|
|
|
cl_sortkey varchar(255) NOT NULL,
|
|
|
|
|
cl_timestamp timestamp without time zone,
|
|
|
|
|
PRIMARY KEY (cl_from,cl_to)
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE INDEX cl_to_sortkey_idx ON categorylinks (cl_to, cl_sortkey);
|
|
|
|
|
CREATE INDEX cl_to_timestamp ON categorylinks (cl_to, cl_timestamp);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE links (
|
|
|
|
|
l_from integer NOT NULL,
|
|
|
|
|
l_to integer NOT NULL,
|
|
|
|
|
PRIMARY KEY (l_from,l_to)
|
|
|
|
|
);
|
|
|
|
|
CREATE INDEX l_to_idx ON links (l_to);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
CREATE TABLE linkscc (
|
2004-09-03 11:53:46 +00:00
|
|
|
lcc_pageid integer PRIMARY KEY,
|
|
|
|
|
lcc_title varchar(255) DEFAULT ''::character varying NOT NULL,
|
|
|
|
|
lcc_cacheobj text NOT NULL
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE RULE links_del AS ON DELETE TO links DO DELETE FROM linkscc WHERE (linkscc.lcc_pageid = old.l_from);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE searchindex (
|
|
|
|
|
si_page integer PRIMARY KEY,
|
|
|
|
|
si_title varchar(255) NOT NULL,
|
|
|
|
|
si_text text NOT NULL
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
|
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE "user" (
|
|
|
|
|
user_id serial PRIMARY KEY,
|
|
|
|
|
user_name varchar(255) UNIQUE NOT NULL,
|
|
|
|
|
user_real_name varchar(255) NOT NULL,
|
|
|
|
|
user_rights text DEFAULT ''::text NOT NULL,
|
|
|
|
|
user_password text DEFAULT ''::text NOT NULL,
|
|
|
|
|
user_newpassword text DEFAULT ''::text NOT NULL,
|
|
|
|
|
user_email text DEFAULT ''::text NOT NULL,
|
|
|
|
|
user_options text DEFAULT ''::text NOT NULL,
|
2004-09-26 09:03:45 +00:00
|
|
|
user_touched timestamp without time zone DEFAULT '1900-01-01 00:00:00'::timestamp without time zone NOT NULL,
|
|
|
|
|
user_token char(32) DEFAULT '' NOT NULL
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE user_newtalk (
|
|
|
|
|
user_id integer NOT NULL,
|
|
|
|
|
user_ip inet NOT NULL
|
|
|
|
|
);
|
|
|
|
|
CREATE INDEX user_newtalk_id_idx ON user_newtalk (user_id);
|
|
|
|
|
CREATE INDEX user_newtalk_ip_idx ON user_newtalk (user_ip);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
|
|
|
|
CREATE TABLE ipblocks (
|
2004-09-03 11:53:46 +00:00
|
|
|
ipb_id serial PRIMARY KEY,
|
|
|
|
|
ipb_address inet NOT NULL,
|
|
|
|
|
ipb_user integer NOT NULL,
|
|
|
|
|
ipb_by integer NOT NULL,
|
|
|
|
|
ipb_reason text NOT NULL,
|
|
|
|
|
ipb_timestamp timestamp without time zone NOT NULL,
|
|
|
|
|
ipb_auto smallint NOT NULL,
|
2004-09-07 06:46:37 +00:00
|
|
|
ipb_expiry timestamp without time zone NOT NULL
|
2004-09-03 11:53:46 +00:00
|
|
|
);
|
|
|
|
|
CREATE INDEX ipb_address_idx ON ipblocks (ipb_address);
|
|
|
|
|
CREATE INDEX ipb_user_idx ON ipblocks (ipb_user);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE math (
|
|
|
|
|
math_inputhash varchar(16) PRIMARY KEY,
|
|
|
|
|
math_outputhash varchar(16) NOT NULL,
|
|
|
|
|
math_html_conservativeness smallint NOT NULL,
|
2004-09-07 13:44:51 +00:00
|
|
|
math_html text,
|
|
|
|
|
math_mathml text
|
2004-09-03 11:53:46 +00:00
|
|
|
);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE objectcache (
|
|
|
|
|
keyname varchar(255) PRIMARY KEY,
|
|
|
|
|
value text,
|
|
|
|
|
exptime timestamp without time zone
|
|
|
|
|
);
|
|
|
|
|
CREATE INDEX oc_exptime ON objectcache (exptime);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE archive (
|
|
|
|
|
ar_namespace smallint NOT NULL,
|
|
|
|
|
ar_title varchar(255) NOT NULL,
|
|
|
|
|
ar_text text NOT NULL,
|
|
|
|
|
ar_comment text NOT NULL,
|
|
|
|
|
ar_user integer NOT NULL,
|
|
|
|
|
ar_user_text varchar(255) NOT NULL,
|
|
|
|
|
ar_timestamp timestamp without time zone NOT NULL,
|
|
|
|
|
ar_minor_edit smallint NOT NULL,
|
|
|
|
|
ar_flags text NOT NULL
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
|
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE recentchanges (
|
|
|
|
|
rc_id serial PRIMARY KEY,
|
|
|
|
|
rc_timestamp timestamp without time zone NOT NULL,
|
|
|
|
|
rc_cur_time timestamp without time zone NOT NULL,
|
|
|
|
|
rc_user integer NOT NULL,
|
|
|
|
|
rc_user_text varchar(255) NOT NULL,
|
|
|
|
|
rc_namespace smallint NOT NULL,
|
|
|
|
|
rc_title varchar(255) NOT NULL,
|
|
|
|
|
rc_comment text NOT NULL,
|
|
|
|
|
rc_minor smallint NOT NULL,
|
|
|
|
|
rc_bot smallint NOT NULL,
|
|
|
|
|
rc_new smallint NOT NULL,
|
|
|
|
|
rc_cur_id integer NOT NULL,
|
|
|
|
|
rc_this_oldid integer NOT NULL,
|
|
|
|
|
rc_last_oldid integer NOT NULL,
|
|
|
|
|
rc_type smallint NOT NULL,
|
2004-09-09 00:02:38 +00:00
|
|
|
rc_moved_to_ns smallint,
|
|
|
|
|
rc_moved_to_title varchar,
|
2004-09-03 11:53:46 +00:00
|
|
|
rc_ip inet,
|
|
|
|
|
rc_patrolled smallint
|
|
|
|
|
);
|
|
|
|
|
CREATE INDEX rc_ip ON recentchanges (rc_ip);
|
|
|
|
|
CREATE INDEX rc_new_name_ts_idx ON recentchanges (rc_new, rc_namespace, rc_timestamp);
|
|
|
|
|
CREATE INDEX rc_cur_id_idx ON recentchanges (rc_cur_id);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE site_stats (
|
|
|
|
|
ss_row_id serial PRIMARY KEY,
|
|
|
|
|
ss_total_views bigint NOT NULL,
|
|
|
|
|
ss_total_edits bigint NOT NULL,
|
|
|
|
|
ss_good_articles bigint NOT NULL
|
|
|
|
|
);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
|
|
|
|
CREATE TABLE oldimage (
|
2004-09-03 11:53:46 +00:00
|
|
|
oi_name varchar(255) NOT NULL,
|
|
|
|
|
oi_archive_name varchar(255) NOT NULL,
|
|
|
|
|
oi_size integer NOT NULL,
|
|
|
|
|
oi_description text NOT NULL,
|
|
|
|
|
oi_user integer NOT NULL,
|
|
|
|
|
oi_user_text varchar(255) NOT NULL,
|
|
|
|
|
oi_timestamp timestamp without time zone NOT NULL
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE INDEX oi_name_idx ON oldimage (oi_name);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE querycache (
|
|
|
|
|
qc_type char(32),
|
|
|
|
|
qc_value integer,
|
|
|
|
|
qc_namespace smallint,
|
|
|
|
|
qc_title char(255)
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE INDEX qc_type_value_idx ON querycache (qc_type, qc_value);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
|
|
|
|
CREATE TABLE watchlist (
|
|
|
|
|
wl_user integer NOT NULL,
|
2004-09-03 11:53:46 +00:00
|
|
|
wl_namespace smallint NOT NULL,
|
|
|
|
|
wl_title varchar(255) NOT NULL,
|
|
|
|
|
PRIMARY KEY (wl_user, wl_namespace, wl_title)
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE INDEX idx_wl_user ON watchlist (wl_user);
|
|
|
|
|
CREATE INDEX idx_wl_title ON watchlist (wl_title);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
|
|
|
|
CREATE TABLE interwiki (
|
2004-09-03 11:53:46 +00:00
|
|
|
iw_prefix char(32) PRIMARY KEY,
|
|
|
|
|
iw_url varchar(127) NOT NULL,
|
|
|
|
|
iw_local smallint NOT NULL
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
|
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE profiling (
|
|
|
|
|
pf_count integer,
|
|
|
|
|
pf_time double precision,
|
|
|
|
|
pf_name varchar(255) PRIMARY KEY
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
|
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE validate (
|
|
|
|
|
val_user integer DEFAULT 0 NOT NULL,
|
|
|
|
|
val_title varchar(255) NOT NULL,
|
|
|
|
|
val_timestamp timestamp without time zone NOT NULL,
|
|
|
|
|
val_type integer DEFAULT 0 NOT NULL,
|
|
|
|
|
val_value integer DEFAULT 0 NOT NULL,
|
|
|
|
|
val_comment varchar(255) NOT NULL
|
2004-06-07 01:41:15 +00:00
|
|
|
);
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE INDEX val_user ON validate (val_user, val_title, val_timestamp);
|
2004-06-07 01:41:15 +00:00
|
|
|
|
2004-09-03 11:53:46 +00:00
|
|
|
CREATE TABLE user_rights (
|
|
|
|
|
user_id integer PRIMARY KEY,
|
|
|
|
|
user_rights text NOT NULL
|
|
|
|
|
);
|
2004-09-06 09:01:17 +00:00
|
|
|
|
|
|
|
|
CREATE TABLE logging (
|
|
|
|
|
log_type character(10) NOT NULL,
|
|
|
|
|
log_action character(10) NOT NULL,
|
|
|
|
|
log_timestamp timestamp without time zone NOT NULL,
|
|
|
|
|
log_user integer NOT NULL,
|
|
|
|
|
log_namespace smallint NOT NULL,
|
|
|
|
|
log_title character varying(255) NOT NULL,
|
|
|
|
|
log_comment character varying(255) NOT NULL
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
CREATE INDEX log_type_time ON logging USING btree (log_type, log_timestamp);
|
|
|
|
|
CREATE INDEX log_user_time ON logging USING btree (log_user, log_timestamp);
|
|
|
|
|
CREATE INDEX log_page_time ON logging USING btree (log_namespace, log_title, log_timestamp);
|
2004-10-02 03:59:17 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
-- HACK HACK HACK
|
|
|
|
|
CREATE TABLE "group" (
|
|
|
|
|
group_id integer PRIMARY KEY,
|
|
|
|
|
group_name varchar(50) NOT NULL,
|
|
|
|
|
group_description varchar(255) NOT NULL
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
-- Relation table between user and groups
|
|
|
|
|
CREATE TABLE user_groups (
|
2004-10-24 19:14:48 +00:00
|
|
|
ug_user integer NOT NULL,
|
|
|
|
|
ug_group integer NOT NULL,
|
2004-10-02 03:59:17 +00:00
|
|
|
PRIMARY KEY (user_id,group_id)
|
|
|
|
|
);
|