1-- This is a copy of MediaWiki 1.20 schema shared by MySQL and SQLite.
2-- It is used for updater testing. Comments are stripped to decrease
3-- file size, as we don't need to maintain it.
4
5CREATE TABLE /*_*/user (
6  user_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
7  user_name varchar(255) binary NOT NULL default '',
8  user_real_name varchar(255) binary NOT NULL default '',
9  user_password tinyblob NOT NULL,
10  user_newpassword tinyblob NOT NULL,
11  user_newpass_time binary(14),
12  user_email tinytext NOT NULL,
13  user_touched binary(14) NOT NULL default '',
14  user_token binary(32) NOT NULL default '',
15  user_email_authenticated binary(14),
16  user_email_token binary(32),
17  user_email_token_expires binary(14),
18  user_registration binary(14),
19  user_editcount int
20) /*$wgDBTableOptions*/;
21CREATE UNIQUE INDEX /*i*/user_name ON /*_*/user (user_name);
22CREATE INDEX /*i*/user_email_token ON /*_*/user (user_email_token);
23CREATE INDEX /*i*/user_email ON /*_*/user (user_email(50));
24CREATE TABLE /*_*/user_groups (
25  ug_user int unsigned NOT NULL default 0,
26  ug_group varbinary(32) NOT NULL default ''
27) /*$wgDBTableOptions*/;
28CREATE UNIQUE INDEX /*i*/ug_user_group ON /*_*/user_groups (ug_user,ug_group);
29CREATE INDEX /*i*/ug_group ON /*_*/user_groups (ug_group);
30CREATE TABLE /*_*/user_former_groups (
31  ufg_user int unsigned NOT NULL default 0,
32  ufg_group varbinary(32) NOT NULL default ''
33) /*$wgDBTableOptions*/;
34CREATE UNIQUE INDEX /*i*/ufg_user_group ON /*_*/user_former_groups (ufg_user,ufg_group);
35CREATE TABLE /*_*/user_newtalk (
36  user_id int NOT NULL default 0,
37  user_ip varbinary(40) NOT NULL default '',
38  user_last_timestamp varbinary(14) NULL default NULL
39) /*$wgDBTableOptions*/;
40CREATE INDEX /*i*/un_user_id ON /*_*/user_newtalk (user_id);
41CREATE INDEX /*i*/un_user_ip ON /*_*/user_newtalk (user_ip);
42CREATE TABLE /*_*/user_properties (
43  up_user int NOT NULL,
44  up_property varbinary(255) NOT NULL,
45  up_value blob
46) /*$wgDBTableOptions*/;
47CREATE UNIQUE INDEX /*i*/user_properties_user_property ON /*_*/user_properties (up_user,up_property);
48CREATE INDEX /*i*/user_properties_property ON /*_*/user_properties (up_property);
49CREATE TABLE /*_*/page (
50  page_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
51  page_namespace int NOT NULL,
52  page_title varchar(255) binary NOT NULL,
53  page_restrictions tinyblob NOT NULL,
54  page_counter bigint unsigned NOT NULL default 0,
55  page_is_redirect tinyint unsigned NOT NULL default 0,
56  page_is_new tinyint unsigned NOT NULL default 0,
57  page_random real unsigned NOT NULL,
58  page_touched binary(14) NOT NULL default '',
59  page_latest int unsigned NOT NULL,
60  page_len int unsigned NOT NULL
61) /*$wgDBTableOptions*/;
62CREATE UNIQUE INDEX /*i*/name_title ON /*_*/page (page_namespace,page_title);
63CREATE INDEX /*i*/page_random ON /*_*/page (page_random);
64CREATE INDEX /*i*/page_len ON /*_*/page (page_len);
65CREATE INDEX /*i*/page_redirect_namespace_len ON /*_*/page (page_is_redirect, page_namespace, page_len);
66CREATE TABLE /*_*/revision (
67  rev_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
68  rev_page int unsigned NOT NULL,
69  rev_text_id int unsigned NOT NULL,
70  rev_comment tinyblob NOT NULL,
71  rev_user int unsigned NOT NULL default 0,
72  rev_user_text varchar(255) binary NOT NULL default '',
73  rev_timestamp binary(14) NOT NULL default '',
74  rev_minor_edit tinyint unsigned NOT NULL default 0,
75  rev_deleted tinyint unsigned NOT NULL default 0,
76  rev_len int unsigned,
77  rev_parent_id int unsigned default NULL,
78  rev_sha1 varbinary(32) NOT NULL default ''
79) /*$wgDBTableOptions*/ MAX_ROWS=10000000 AVG_ROW_LENGTH=1024;
80CREATE UNIQUE INDEX /*i*/rev_page_id ON /*_*/revision (rev_page, rev_id);
81CREATE INDEX /*i*/rev_timestamp ON /*_*/revision (rev_timestamp);
82CREATE INDEX /*i*/page_timestamp ON /*_*/revision (rev_page,rev_timestamp);
83CREATE INDEX /*i*/user_timestamp ON /*_*/revision (rev_user,rev_timestamp);
84CREATE INDEX /*i*/usertext_timestamp ON /*_*/revision (rev_user_text,rev_timestamp);
85CREATE INDEX /*i*/page_user_timestamp ON /*_*/revision (rev_page,rev_user,rev_timestamp);
86CREATE TABLE /*_*/text (
87  old_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
88  old_text mediumblob NOT NULL,
89  old_flags tinyblob NOT NULL
90) /*$wgDBTableOptions*/ MAX_ROWS=10000000 AVG_ROW_LENGTH=10240;
91CREATE TABLE /*_*/archive (
92  ar_namespace int NOT NULL default 0,
93  ar_title varchar(255) binary NOT NULL default '',
94  ar_text mediumblob NOT NULL,
95  ar_comment tinyblob NOT NULL,
96  ar_user int unsigned NOT NULL default 0,
97  ar_user_text varchar(255) binary NOT NULL,
98  ar_timestamp binary(14) NOT NULL default '',
99  ar_minor_edit tinyint NOT NULL default 0,
100  ar_flags tinyblob NOT NULL,
101  ar_rev_id int unsigned,
102  ar_text_id int unsigned,
103  ar_deleted tinyint unsigned NOT NULL default 0,
104  ar_len int unsigned,
105  ar_page_id int unsigned,
106  ar_parent_id int unsigned default NULL,
107  ar_sha1 varbinary(32) NOT NULL default ''
108) /*$wgDBTableOptions*/;
109CREATE INDEX /*i*/name_title_timestamp ON /*_*/archive (ar_namespace,ar_title,ar_timestamp);
110CREATE INDEX /*i*/ar_usertext_timestamp ON /*_*/archive (ar_user_text,ar_timestamp);
111CREATE INDEX /*i*/ar_revid ON /*_*/archive (ar_rev_id);
112CREATE TABLE /*_*/pagelinks (
113  pl_from int unsigned NOT NULL default 0,
114  pl_namespace int NOT NULL default 0,
115  pl_title varchar(255) binary NOT NULL default ''
116) /*$wgDBTableOptions*/;
117CREATE UNIQUE INDEX /*i*/pl_from ON /*_*/pagelinks (pl_from,pl_namespace,pl_title);
118CREATE UNIQUE INDEX /*i*/pl_namespace ON /*_*/pagelinks (pl_namespace,pl_title,pl_from);
119CREATE TABLE /*_*/templatelinks (
120  tl_from int unsigned NOT NULL default 0,
121  tl_namespace int NOT NULL default 0,
122  tl_title varchar(255) binary NOT NULL default ''
123) /*$wgDBTableOptions*/;
124CREATE UNIQUE INDEX /*i*/tl_from ON /*_*/templatelinks (tl_from,tl_namespace,tl_title);
125CREATE UNIQUE INDEX /*i*/tl_namespace ON /*_*/templatelinks (tl_namespace,tl_title,tl_from);
126CREATE TABLE /*_*/imagelinks (
127  il_from int unsigned NOT NULL default 0,
128  il_to varchar(255) binary NOT NULL default ''
129) /*$wgDBTableOptions*/;
130CREATE UNIQUE INDEX /*i*/il_from ON /*_*/imagelinks (il_from,il_to);
131CREATE UNIQUE INDEX /*i*/il_to ON /*_*/imagelinks (il_to,il_from);
132CREATE TABLE /*_*/categorylinks (
133  cl_from int unsigned NOT NULL default 0,
134  cl_to varchar(255) binary NOT NULL default '',
135  cl_sortkey varbinary(230) NOT NULL default '',
136  cl_sortkey_prefix varchar(255) binary NOT NULL default '',
137  cl_timestamp timestamp NOT NULL,
138  cl_collation varbinary(32) NOT NULL default '',
139  cl_type ENUM('page', 'subcat', 'file') NOT NULL default 'page'
140) /*$wgDBTableOptions*/;
141CREATE UNIQUE INDEX /*i*/cl_from ON /*_*/categorylinks (cl_from,cl_to);
142CREATE INDEX /*i*/cl_sortkey ON /*_*/categorylinks (cl_to,cl_type,cl_sortkey,cl_from);
143CREATE INDEX /*i*/cl_timestamp ON /*_*/categorylinks (cl_to,cl_timestamp);
144CREATE INDEX /*i*/cl_collation ON /*_*/categorylinks (cl_collation);
145CREATE TABLE /*_*/category (
146  cat_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
147  cat_title varchar(255) binary NOT NULL,
148  cat_pages int signed NOT NULL default 0,
149  cat_subcats int signed NOT NULL default 0,
150  cat_files int signed NOT NULL default 0
151) /*$wgDBTableOptions*/;
152CREATE UNIQUE INDEX /*i*/cat_title ON /*_*/category (cat_title);
153CREATE INDEX /*i*/cat_pages ON /*_*/category (cat_pages);
154CREATE TABLE /*_*/externallinks (
155  el_from int unsigned NOT NULL default 0,
156  el_to blob NOT NULL,
157  el_index blob NOT NULL
158) /*$wgDBTableOptions*/;
159CREATE INDEX /*i*/el_from ON /*_*/externallinks (el_from, el_to(40));
160CREATE INDEX /*i*/el_to ON /*_*/externallinks (el_to(60), el_from);
161CREATE INDEX /*i*/el_index ON /*_*/externallinks (el_index(60));
162CREATE TABLE /*_*/external_user (
163  eu_local_id int unsigned NOT NULL PRIMARY KEY,
164  eu_external_id varchar(255) binary NOT NULL
165) /*$wgDBTableOptions*/;
166CREATE UNIQUE INDEX /*i*/eu_external_id ON /*_*/external_user (eu_external_id);
167CREATE TABLE /*_*/langlinks (
168  ll_from int unsigned NOT NULL default 0,
169  ll_lang varbinary(20) NOT NULL default '',
170  ll_title varchar(255) binary NOT NULL default ''
171) /*$wgDBTableOptions*/;
172CREATE UNIQUE INDEX /*i*/ll_from ON /*_*/langlinks (ll_from, ll_lang);
173CREATE INDEX /*i*/ll_lang ON /*_*/langlinks (ll_lang, ll_title);
174CREATE TABLE /*_*/iwlinks (
175  iwl_from int unsigned NOT NULL default 0,
176  iwl_prefix varbinary(20) NOT NULL default '',
177  iwl_title varchar(255) binary NOT NULL default ''
178) /*$wgDBTableOptions*/;
179CREATE UNIQUE INDEX /*i*/iwl_from ON /*_*/iwlinks (iwl_from, iwl_prefix, iwl_title);
180CREATE UNIQUE INDEX /*i*/iwl_prefix_title_from ON /*_*/iwlinks (iwl_prefix, iwl_title, iwl_from);
181CREATE TABLE /*_*/site_stats (
182  ss_row_id int unsigned NOT NULL,
183  ss_total_views bigint unsigned default 0,
184  ss_total_edits bigint unsigned default 0,
185  ss_good_articles bigint unsigned default 0,
186  ss_total_pages bigint default '-1',
187  ss_users bigint default '-1',
188  ss_active_users bigint default '-1',
189  ss_admins int default '-1',
190  ss_images int default 0
191) /*$wgDBTableOptions*/;
192CREATE UNIQUE INDEX /*i*/ss_row_id ON /*_*/site_stats (ss_row_id);
193CREATE TABLE /*_*/hitcounter (
194  hc_id int unsigned NOT NULL
195) ENGINE=HEAP MAX_ROWS=25000;
196CREATE TABLE /*_*/ipblocks (
197  ipb_id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
198  ipb_address tinyblob NOT NULL,
199  ipb_user int unsigned NOT NULL default 0,
200  ipb_by int unsigned NOT NULL default 0,
201  ipb_by_text varchar(255) binary NOT NULL default '',
202  ipb_reason tinyblob NOT NULL,
203  ipb_timestamp binary(14) NOT NULL default '',
204  ipb_auto bool NOT NULL default 0,
205  ipb_anon_only bool NOT NULL default 0,
206  ipb_create_account bool NOT NULL default 1,
207  ipb_enable_autoblock bool NOT NULL default '1',
208  ipb_expiry varbinary(14) NOT NULL default '',
209  ipb_range_start tinyblob NOT NULL,
210  ipb_range_end tinyblob NOT NULL,
211  ipb_deleted bool NOT NULL default 0,
212  ipb_block_email bool NOT NULL default 0,
213  ipb_allow_usertalk bool NOT NULL default 0,
214  ipb_parent_block_id int default NULL
215) /*$wgDBTableOptions*/;
216CREATE UNIQUE INDEX /*i*/ipb_address ON /*_*/ipblocks (ipb_address(255), ipb_user, ipb_auto, ipb_anon_only);
217CREATE INDEX /*i*/ipb_user ON /*_*/ipblocks (ipb_user);
218CREATE INDEX /*i*/ipb_range ON /*_*/ipblocks (ipb_range_start(8), ipb_range_end(8));
219CREATE INDEX /*i*/ipb_timestamp ON /*_*/ipblocks (ipb_timestamp);
220CREATE INDEX /*i*/ipb_expiry ON /*_*/ipblocks (ipb_expiry);
221CREATE INDEX /*i*/ipb_parent_block_id ON /*_*/ipblocks (ipb_parent_block_id);
222CREATE TABLE /*_*/image (
223  img_name varchar(255) binary NOT NULL default '' PRIMARY KEY,
224  img_size int unsigned NOT NULL default 0,
225  img_width int NOT NULL default 0,
226  img_height int NOT NULL default 0,
227  img_metadata mediumblob NOT NULL,
228  img_bits int NOT NULL default 0,
229  img_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
230  img_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
231  img_minor_mime varbinary(100) NOT NULL default "unknown",
232  img_description tinyblob NOT NULL,
233  img_user int unsigned NOT NULL default 0,
234  img_user_text varchar(255) binary NOT NULL,
235  img_timestamp varbinary(14) NOT NULL default '',
236  img_sha1 varbinary(32) NOT NULL default ''
237) /*$wgDBTableOptions*/;
238CREATE INDEX /*i*/img_usertext_timestamp ON /*_*/image (img_user_text,img_timestamp);
239CREATE INDEX /*i*/img_size ON /*_*/image (img_size);
240CREATE INDEX /*i*/img_timestamp ON /*_*/image (img_timestamp);
241CREATE INDEX /*i*/img_sha1 ON /*_*/image (img_sha1);
242CREATE TABLE /*_*/oldimage (
243  oi_name varchar(255) binary NOT NULL default '',
244  oi_archive_name varchar(255) binary NOT NULL default '',
245  oi_size int unsigned NOT NULL default 0,
246  oi_width int NOT NULL default 0,
247  oi_height int NOT NULL default 0,
248  oi_bits int NOT NULL default 0,
249  oi_description tinyblob NOT NULL,
250  oi_user int unsigned NOT NULL default 0,
251  oi_user_text varchar(255) binary NOT NULL,
252  oi_timestamp binary(14) NOT NULL default '',
253  oi_metadata mediumblob NOT NULL,
254  oi_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
255  oi_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
256  oi_minor_mime varbinary(100) NOT NULL default "unknown",
257  oi_deleted tinyint unsigned NOT NULL default 0,
258  oi_sha1 varbinary(32) NOT NULL default ''
259) /*$wgDBTableOptions*/;
260CREATE INDEX /*i*/oi_usertext_timestamp ON /*_*/oldimage (oi_user_text,oi_timestamp);
261CREATE INDEX /*i*/oi_name_timestamp ON /*_*/oldimage (oi_name,oi_timestamp);
262CREATE INDEX /*i*/oi_name_archive_name ON /*_*/oldimage (oi_name,oi_archive_name(14));
263CREATE INDEX /*i*/oi_sha1 ON /*_*/oldimage (oi_sha1);
264CREATE TABLE /*_*/filearchive (
265  fa_id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
266  fa_name varchar(255) binary NOT NULL default '',
267  fa_archive_name varchar(255) binary default '',
268  fa_storage_group varbinary(16),
269  fa_storage_key varbinary(64) default '',
270  fa_deleted_user int,
271  fa_deleted_timestamp binary(14) default '',
272  fa_deleted_reason text,
273  fa_size int unsigned default 0,
274  fa_width int default 0,
275  fa_height int default 0,
276  fa_metadata mediumblob,
277  fa_bits int default 0,
278  fa_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
279  fa_major_mime ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") default "unknown",
280  fa_minor_mime varbinary(100) default "unknown",
281  fa_description tinyblob,
282  fa_user int unsigned default 0,
283  fa_user_text varchar(255) binary,
284  fa_timestamp binary(14) default '',
285  fa_deleted tinyint unsigned NOT NULL default 0
286) /*$wgDBTableOptions*/;
287CREATE INDEX /*i*/fa_name ON /*_*/filearchive (fa_name, fa_timestamp);
288CREATE INDEX /*i*/fa_storage_group ON /*_*/filearchive (fa_storage_group, fa_storage_key);
289CREATE INDEX /*i*/fa_deleted_timestamp ON /*_*/filearchive (fa_deleted_timestamp);
290CREATE INDEX /*i*/fa_user_timestamp ON /*_*/filearchive (fa_user_text,fa_timestamp);
291CREATE TABLE /*_*/uploadstash (
292  us_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
293  us_user int unsigned NOT NULL,
294  us_key varchar(255) NOT NULL,
295  us_orig_path varchar(255) NOT NULL,
296  us_path varchar(255) NOT NULL,
297  us_source_type varchar(50),
298  us_timestamp varbinary(14) NOT NULL,
299  us_status varchar(50) NOT NULL,
300  us_chunk_inx int unsigned NULL,
301  us_size int unsigned NOT NULL,
302  us_sha1 varchar(31) NOT NULL,
303  us_mime varchar(255),
304  us_media_type ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
305  us_image_width int unsigned,
306  us_image_height int unsigned,
307  us_image_bits smallint unsigned
308) /*$wgDBTableOptions*/;
309CREATE INDEX /*i*/us_user ON /*_*/uploadstash (us_user);
310CREATE UNIQUE INDEX /*i*/us_key ON /*_*/uploadstash (us_key);
311CREATE INDEX /*i*/us_timestamp ON /*_*/uploadstash (us_timestamp);
312CREATE TABLE /*_*/recentchanges (
313  rc_id int NOT NULL PRIMARY KEY AUTO_INCREMENT,
314  rc_timestamp varbinary(14) NOT NULL default '',
315  rc_cur_time varbinary(14) NOT NULL default '',
316  rc_user int unsigned NOT NULL default 0,
317  rc_user_text varchar(255) binary NOT NULL,
318  rc_namespace int NOT NULL default 0,
319  rc_title varchar(255) binary NOT NULL default '',
320  rc_comment varchar(255) binary NOT NULL default '',
321  rc_minor tinyint unsigned NOT NULL default 0,
322  rc_bot tinyint unsigned NOT NULL default 0,
323  rc_new tinyint unsigned NOT NULL default 0,
324  rc_cur_id int unsigned NOT NULL default 0,
325  rc_this_oldid int unsigned NOT NULL default 0,
326  rc_last_oldid int unsigned NOT NULL default 0,
327  rc_type tinyint unsigned NOT NULL default 0,
328  rc_moved_to_ns tinyint unsigned NOT NULL default 0,
329  rc_moved_to_title varchar(255) binary NOT NULL default '',
330  rc_patrolled tinyint unsigned NOT NULL default 0,
331  rc_ip varbinary(40) NOT NULL default '',
332  rc_old_len int,
333  rc_new_len int,
334  rc_deleted tinyint unsigned NOT NULL default 0,
335  rc_logid int unsigned NOT NULL default 0,
336  rc_log_type varbinary(255) NULL default NULL,
337  rc_log_action varbinary(255) NULL default NULL,
338  rc_params blob NULL
339) /*$wgDBTableOptions*/;
340CREATE INDEX /*i*/rc_timestamp ON /*_*/recentchanges (rc_timestamp);
341CREATE INDEX /*i*/rc_namespace_title ON /*_*/recentchanges (rc_namespace, rc_title);
342CREATE INDEX /*i*/rc_cur_id ON /*_*/recentchanges (rc_cur_id);
343CREATE INDEX /*i*/new_name_timestamp ON /*_*/recentchanges (rc_new,rc_namespace,rc_timestamp);
344CREATE INDEX /*i*/rc_ip ON /*_*/recentchanges (rc_ip);
345CREATE INDEX /*i*/rc_ns_usertext ON /*_*/recentchanges (rc_namespace, rc_user_text);
346CREATE INDEX /*i*/rc_user_text ON /*_*/recentchanges (rc_user_text, rc_timestamp);
347CREATE TABLE /*_*/watchlist (
348  wl_user int unsigned NOT NULL,
349  wl_namespace int NOT NULL default 0,
350  wl_title varchar(255) binary NOT NULL default '',
351  wl_notificationtimestamp varbinary(14)
352) /*$wgDBTableOptions*/;
353CREATE UNIQUE INDEX /*i*/wl_user ON /*_*/watchlist (wl_user, wl_namespace, wl_title);
354CREATE INDEX /*i*/namespace_title ON /*_*/watchlist (wl_namespace, wl_title);
355CREATE TABLE /*_*/searchindex (
356  si_page int unsigned NOT NULL,
357  si_title varchar(255) NOT NULL default '',
358  si_text mediumtext NOT NULL
359) ENGINE=MyISAM;
360CREATE UNIQUE INDEX /*i*/si_page ON /*_*/searchindex (si_page);
361CREATE FULLTEXT INDEX /*i*/si_title ON /*_*/searchindex (si_title);
362CREATE FULLTEXT INDEX /*i*/si_text ON /*_*/searchindex (si_text);
363CREATE TABLE /*_*/interwiki (
364  iw_prefix varchar(32) NOT NULL,
365  iw_url blob NOT NULL,
366  iw_api blob NOT NULL,
367  iw_wikiid varchar(64) NOT NULL,
368  iw_local bool NOT NULL,
369  iw_trans tinyint NOT NULL default 0
370) /*$wgDBTableOptions*/;
371CREATE UNIQUE INDEX /*i*/iw_prefix ON /*_*/interwiki (iw_prefix);
372CREATE TABLE /*_*/querycache (
373  qc_type varbinary(32) NOT NULL,
374  qc_value int unsigned NOT NULL default 0,
375  qc_namespace int NOT NULL default 0,
376  qc_title varchar(255) binary NOT NULL default ''
377) /*$wgDBTableOptions*/;
378CREATE INDEX /*i*/qc_type ON /*_*/querycache (qc_type,qc_value);
379CREATE TABLE /*_*/objectcache (
380  keyname varbinary(255) NOT NULL default '' PRIMARY KEY,
381  value mediumblob,
382  exptime datetime
383) /*$wgDBTableOptions*/;
384CREATE INDEX /*i*/exptime ON /*_*/objectcache (exptime);
385CREATE TABLE /*_*/transcache (
386  tc_url varbinary(255) NOT NULL,
387  tc_contents text,
388  tc_time binary(14) NOT NULL
389) /*$wgDBTableOptions*/;
390CREATE UNIQUE INDEX /*i*/tc_url_idx ON /*_*/transcache (tc_url);
391CREATE TABLE /*_*/logging (
392  log_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
393  log_type varbinary(32) NOT NULL default '',
394  log_action varbinary(32) NOT NULL default '',
395  log_timestamp binary(14) NOT NULL default '19700101000000',
396  log_user int unsigned NOT NULL default 0,
397  log_user_text varchar(255) binary NOT NULL default '',
398  log_namespace int NOT NULL default 0,
399  log_title varchar(255) binary NOT NULL default '',
400  log_page int unsigned NULL,
401  log_comment varchar(255) NOT NULL default '',
402  log_params blob NOT NULL,
403  log_deleted tinyint unsigned NOT NULL default 0
404) /*$wgDBTableOptions*/;
405CREATE INDEX /*i*/type_time ON /*_*/logging (log_type, log_timestamp);
406CREATE INDEX /*i*/user_time ON /*_*/logging (log_user, log_timestamp);
407CREATE INDEX /*i*/page_time ON /*_*/logging (log_namespace, log_title, log_timestamp);
408CREATE INDEX /*i*/times ON /*_*/logging (log_timestamp);
409CREATE INDEX /*i*/log_user_type_time ON /*_*/logging (log_user, log_type, log_timestamp);
410CREATE INDEX /*i*/log_page_id_time ON /*_*/logging (log_page,log_timestamp);
411CREATE INDEX /*i*/type_action ON /*_*/logging (log_type, log_action, log_timestamp);
412CREATE TABLE /*_*/log_search (
413  ls_field varbinary(32) NOT NULL,
414  ls_value varchar(255) NOT NULL,
415  ls_log_id int unsigned NOT NULL default 0
416) /*$wgDBTableOptions*/;
417CREATE UNIQUE INDEX /*i*/ls_field_val ON /*_*/log_search (ls_field,ls_value,ls_log_id);
418CREATE INDEX /*i*/ls_log_id ON /*_*/log_search (ls_log_id);
419CREATE TABLE /*_*/job (
420  job_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
421  job_cmd varbinary(60) NOT NULL default '',
422  job_namespace int NOT NULL,
423  job_title varchar(255) binary NOT NULL,
424  job_timestamp varbinary(14) NULL default NULL,
425  job_params blob NOT NULL
426) /*$wgDBTableOptions*/;
427CREATE INDEX /*i*/job_cmd ON /*_*/job (job_cmd, job_namespace, job_title, job_params(128));
428CREATE INDEX /*i*/job_timestamp ON /*_*/job (job_timestamp);
429CREATE TABLE /*_*/querycache_info (
430  qci_type varbinary(32) NOT NULL default '',
431  qci_timestamp binary(14) NOT NULL default '19700101000000'
432) /*$wgDBTableOptions*/;
433CREATE UNIQUE INDEX /*i*/qci_type ON /*_*/querycache_info (qci_type);
434CREATE TABLE /*_*/redirect (
435  rd_from int unsigned NOT NULL default 0 PRIMARY KEY,
436  rd_namespace int NOT NULL default 0,
437  rd_title varchar(255) binary NOT NULL default '',
438  rd_interwiki varchar(32) default NULL,
439  rd_fragment varchar(255) binary default NULL
440) /*$wgDBTableOptions*/;
441CREATE INDEX /*i*/rd_ns_title ON /*_*/redirect (rd_namespace,rd_title,rd_from);
442CREATE TABLE /*_*/querycachetwo (
443  qcc_type varbinary(32) NOT NULL,
444  qcc_value int unsigned NOT NULL default 0,
445  qcc_namespace int NOT NULL default 0,
446  qcc_title varchar(255) binary NOT NULL default '',
447  qcc_namespacetwo int NOT NULL default 0,
448  qcc_titletwo varchar(255) binary NOT NULL default ''
449) /*$wgDBTableOptions*/;
450CREATE INDEX /*i*/qcc_type ON /*_*/querycachetwo (qcc_type,qcc_value);
451CREATE INDEX /*i*/qcc_title ON /*_*/querycachetwo (qcc_type,qcc_namespace,qcc_title);
452CREATE INDEX /*i*/qcc_titletwo ON /*_*/querycachetwo (qcc_type,qcc_namespacetwo,qcc_titletwo);
453CREATE TABLE /*_*/page_restrictions (
454  pr_page int NOT NULL,
455  pr_type varbinary(60) NOT NULL,
456  pr_level varbinary(60) NOT NULL,
457  pr_cascade tinyint NOT NULL,
458  pr_user int NULL,
459  pr_expiry varbinary(14) NULL,
460  pr_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT
461) /*$wgDBTableOptions*/;
462CREATE UNIQUE INDEX /*i*/pr_pagetype ON /*_*/page_restrictions (pr_page,pr_type);
463CREATE INDEX /*i*/pr_typelevel ON /*_*/page_restrictions (pr_type,pr_level);
464CREATE INDEX /*i*/pr_level ON /*_*/page_restrictions (pr_level);
465CREATE INDEX /*i*/pr_cascade ON /*_*/page_restrictions (pr_cascade);
466CREATE TABLE /*_*/protected_titles (
467  pt_namespace int NOT NULL,
468  pt_title varchar(255) binary NOT NULL,
469  pt_user int unsigned NOT NULL,
470  pt_reason tinyblob,
471  pt_timestamp binary(14) NOT NULL,
472  pt_expiry varbinary(14) NOT NULL default '',
473  pt_create_perm varbinary(60) NOT NULL
474) /*$wgDBTableOptions*/;
475CREATE UNIQUE INDEX /*i*/pt_namespace_title ON /*_*/protected_titles (pt_namespace,pt_title);
476CREATE INDEX /*i*/pt_timestamp ON /*_*/protected_titles (pt_timestamp);
477CREATE TABLE /*_*/page_props (
478  pp_page int NOT NULL,
479  pp_propname varbinary(60) NOT NULL,
480  pp_value blob NOT NULL
481) /*$wgDBTableOptions*/;
482CREATE UNIQUE INDEX /*i*/pp_page_propname ON /*_*/page_props (pp_page,pp_propname);
483CREATE TABLE /*_*/updatelog (
484  ul_key varchar(255) NOT NULL PRIMARY KEY,
485  ul_value blob
486) /*$wgDBTableOptions*/;
487CREATE TABLE /*_*/change_tag (
488  ct_rc_id int NULL,
489  ct_log_id int NULL,
490  ct_rev_id int NULL,
491  ct_tag varchar(255) NOT NULL,
492  ct_params blob NULL
493) /*$wgDBTableOptions*/;
494CREATE UNIQUE INDEX /*i*/change_tag_rc_tag ON /*_*/change_tag (ct_rc_id,ct_tag);
495CREATE UNIQUE INDEX /*i*/change_tag_log_tag ON /*_*/change_tag (ct_log_id,ct_tag);
496CREATE UNIQUE INDEX /*i*/change_tag_rev_tag ON /*_*/change_tag (ct_rev_id,ct_tag);
497CREATE INDEX /*i*/change_tag_tag_id ON /*_*/change_tag (ct_tag,ct_rc_id,ct_rev_id,ct_log_id);
498CREATE TABLE /*_*/tag_summary (
499  ts_rc_id int NULL,
500  ts_log_id int NULL,
501  ts_rev_id int NULL,
502  ts_tags blob NOT NULL
503) /*$wgDBTableOptions*/;
504CREATE UNIQUE INDEX /*i*/tag_summary_rc_id ON /*_*/tag_summary (ts_rc_id);
505CREATE UNIQUE INDEX /*i*/tag_summary_log_id ON /*_*/tag_summary (ts_log_id);
506CREATE UNIQUE INDEX /*i*/tag_summary_rev_id ON /*_*/tag_summary (ts_rev_id);
507CREATE TABLE /*_*/valid_tag (
508  vt_tag varchar(255) NOT NULL PRIMARY KEY
509) /*$wgDBTableOptions*/;
510CREATE TABLE /*_*/l10n_cache (
511  lc_lang varbinary(32) NOT NULL,
512  lc_key varchar(255) NOT NULL,
513  lc_value mediumblob NOT NULL
514) /*$wgDBTableOptions*/;
515CREATE INDEX /*i*/lc_lang_key ON /*_*/l10n_cache (lc_lang, lc_key);
516CREATE TABLE /*_*/msg_resource (
517  mr_resource varbinary(255) NOT NULL,
518  mr_lang varbinary(32) NOT NULL,
519  mr_blob mediumblob NOT NULL,
520  mr_timestamp binary(14) NOT NULL
521) /*$wgDBTableOptions*/;
522CREATE UNIQUE INDEX /*i*/mr_resource_lang ON /*_*/msg_resource (mr_resource, mr_lang);
523CREATE TABLE /*_*/msg_resource_links (
524  mrl_resource varbinary(255) NOT NULL,
525  mrl_message varbinary(255) NOT NULL
526) /*$wgDBTableOptions*/;
527CREATE UNIQUE INDEX /*i*/mrl_message_resource ON /*_*/msg_resource_links (mrl_message, mrl_resource);
528CREATE TABLE /*_*/module_deps (
529  md_module varbinary(255) NOT NULL,
530  md_skin varbinary(32) NOT NULL,
531  md_deps mediumblob NOT NULL
532) /*$wgDBTableOptions*/;
533CREATE UNIQUE INDEX /*i*/md_module_skin ON /*_*/module_deps (md_module, md_skin);
534-- vim: sw=2 sts=2 et