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