1 CREATE TABLE /*_*/site_identifiers (
4 si_site INTEGER UNSIGNED NOT NULL,
5 PRIMARY KEY(si_type, si_key)
7 CREATE INDEX si_site ON /*_*/site_identifiers (si_site);
8 CREATE INDEX si_key ON /*_*/site_identifiers (si_key);
9 CREATE TABLE /*_*/updatelog (
10 ul_key VARCHAR(255) NOT NULL,
11 ul_value BLOB DEFAULT NULL,
14 CREATE TABLE /*_*/actor (
15 actor_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
16 actor_user INTEGER UNSIGNED DEFAULT NULL,
17 actor_name BLOB NOT NULL
19 CREATE UNIQUE INDEX actor_user ON /*_*/actor (actor_user);
20 CREATE UNIQUE INDEX actor_name ON /*_*/actor (actor_name);
21 CREATE TABLE /*_*/user_former_groups (
22 ufg_user INTEGER UNSIGNED DEFAULT 0 NOT NULL,
23 ufg_group BLOB DEFAULT '' NOT NULL,
24 PRIMARY KEY(ufg_user, ufg_group)
26 CREATE TABLE /*_*/bot_passwords (
27 bp_user INTEGER UNSIGNED NOT NULL,
28 bp_app_id BLOB NOT NULL,
29 bp_password BLOB NOT NULL,
30 bp_token BLOB DEFAULT '' NOT NULL,
31 bp_restrictions BLOB NOT NULL,
32 bp_grants BLOB NOT NULL,
33 PRIMARY KEY(bp_user, bp_app_id)
35 CREATE TABLE /*_*/comment (
36 comment_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
37 comment_hash INTEGER NOT NULL, comment_text BLOB NOT NULL,
38 comment_data BLOB DEFAULT NULL
40 CREATE INDEX comment_hash ON /*_*/comment (comment_hash);
41 CREATE TABLE /*_*/slots (
42 slot_revision_id BIGINT UNSIGNED NOT NULL,
43 slot_role_id SMALLINT UNSIGNED NOT NULL,
44 slot_content_id BIGINT UNSIGNED NOT NULL,
45 slot_origin BIGINT UNSIGNED NOT NULL,
46 PRIMARY KEY(slot_revision_id, slot_role_id)
48 CREATE INDEX slot_revision_origin_role ON /*_*/slots (
49 slot_revision_id, slot_origin, slot_role_id
51 CREATE TABLE /*_*/site_stats (
52 ss_row_id INTEGER UNSIGNED NOT NULL,
53 ss_total_edits BIGINT UNSIGNED DEFAULT NULL,
54 ss_good_articles BIGINT UNSIGNED DEFAULT NULL,
55 ss_total_pages BIGINT UNSIGNED DEFAULT NULL,
56 ss_users BIGINT UNSIGNED DEFAULT NULL,
57 ss_active_users BIGINT UNSIGNED DEFAULT NULL,
58 ss_images BIGINT UNSIGNED DEFAULT NULL,
59 PRIMARY KEY(ss_row_id)
61 CREATE TABLE /*_*/user_properties (
62 up_user INTEGER UNSIGNED NOT NULL,
63 up_property BLOB NOT NULL,
64 up_value BLOB DEFAULT NULL,
65 PRIMARY KEY(up_user, up_property)
67 CREATE INDEX up_property ON /*_*/user_properties (up_property);
68 CREATE TABLE /*_*/log_search (
69 ls_field BLOB NOT NULL,
70 ls_value VARCHAR(255) NOT NULL,
71 ls_log_id INTEGER UNSIGNED DEFAULT 0 NOT NULL,
72 PRIMARY KEY(ls_field, ls_value, ls_log_id)
74 CREATE INDEX ls_log_id ON /*_*/log_search (ls_log_id);
75 CREATE TABLE /*_*/change_tag (
76 ct_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
77 ct_rc_id INTEGER UNSIGNED DEFAULT NULL,
78 ct_log_id INTEGER UNSIGNED DEFAULT NULL,
79 ct_rev_id INTEGER UNSIGNED DEFAULT NULL,
80 ct_params BLOB DEFAULT NULL, ct_tag_id INTEGER UNSIGNED NOT NULL
82 CREATE UNIQUE INDEX ct_rc_tag_id ON /*_*/change_tag (ct_rc_id, ct_tag_id);
83 CREATE UNIQUE INDEX ct_log_tag_id ON /*_*/change_tag (ct_log_id, ct_tag_id);
84 CREATE UNIQUE INDEX ct_rev_tag_id ON /*_*/change_tag (ct_rev_id, ct_tag_id);
85 CREATE INDEX ct_tag_id_id ON /*_*/change_tag (
86 ct_tag_id, ct_rc_id, ct_rev_id, ct_log_id
88 CREATE TABLE /*_*/content (
89 content_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
90 content_size INTEGER UNSIGNED NOT NULL,
91 content_sha1 BLOB NOT NULL, content_model SMALLINT UNSIGNED NOT NULL,
92 content_address BLOB NOT NULL
94 CREATE TABLE /*_*/l10n_cache (
95 lc_lang BLOB NOT NULL,
96 lc_key VARCHAR(255) NOT NULL,
97 lc_value BLOB NOT NULL,
98 PRIMARY KEY(lc_lang, lc_key)
100 CREATE TABLE /*_*/module_deps (
101 md_module BLOB NOT NULL,
102 md_skin BLOB NOT NULL,
103 md_deps BLOB NOT NULL,
104 PRIMARY KEY(md_module, md_skin)
106 CREATE TABLE /*_*/redirect (
107 rd_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
108 rd_namespace INTEGER DEFAULT 0 NOT NULL,
109 rd_title BLOB DEFAULT '' NOT NULL,
110 rd_interwiki VARCHAR(32) DEFAULT NULL,
111 rd_fragment BLOB DEFAULT NULL,
114 CREATE INDEX rd_ns_title ON /*_*/redirect (rd_namespace, rd_title, rd_from);
115 CREATE TABLE /*_*/pagelinks (
116 pl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
117 pl_namespace INTEGER DEFAULT 0 NOT NULL,
118 pl_title BLOB DEFAULT '' NOT NULL,
119 pl_from_namespace INTEGER DEFAULT 0 NOT NULL,
120 PRIMARY KEY(pl_from, pl_namespace, pl_title)
122 CREATE INDEX pl_namespace ON /*_*/pagelinks (pl_namespace, pl_title, pl_from);
123 CREATE INDEX pl_backlinks_namespace ON /*_*/pagelinks (
124 pl_from_namespace, pl_namespace,
127 CREATE TABLE /*_*/templatelinks (
128 tl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
129 tl_namespace INTEGER DEFAULT 0 NOT NULL,
130 tl_title BLOB DEFAULT '' NOT NULL,
131 tl_from_namespace INTEGER DEFAULT 0 NOT NULL,
132 PRIMARY KEY(tl_from, tl_namespace, tl_title)
134 CREATE INDEX tl_namespace ON /*_*/templatelinks (tl_namespace, tl_title, tl_from);
135 CREATE INDEX tl_backlinks_namespace ON /*_*/templatelinks (
136 tl_from_namespace, tl_namespace,
139 CREATE TABLE /*_*/imagelinks (
140 il_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
141 il_to BLOB DEFAULT '' NOT NULL,
142 il_from_namespace INTEGER DEFAULT 0 NOT NULL,
143 PRIMARY KEY(il_from, il_to)
145 CREATE INDEX il_to ON /*_*/imagelinks (il_to, il_from);
146 CREATE INDEX il_backlinks_namespace ON /*_*/imagelinks (
147 il_from_namespace, il_to, il_from
149 CREATE TABLE /*_*/langlinks (
150 ll_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
151 ll_lang BLOB DEFAULT '' NOT NULL,
152 ll_title BLOB DEFAULT '' NOT NULL,
153 PRIMARY KEY(ll_from, ll_lang)
155 CREATE INDEX ll_lang ON /*_*/langlinks (ll_lang, ll_title);
156 CREATE TABLE /*_*/iwlinks (
157 iwl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
158 iwl_prefix BLOB DEFAULT '' NOT NULL,
159 iwl_title BLOB DEFAULT '' NOT NULL,
160 PRIMARY KEY(iwl_from, iwl_prefix, iwl_title)
162 CREATE INDEX iwl_prefix_title_from ON /*_*/iwlinks (iwl_prefix, iwl_title, iwl_from);
163 CREATE INDEX iwl_prefix_from_title ON /*_*/iwlinks (iwl_prefix, iwl_from, iwl_title);
164 CREATE TABLE /*_*/category (
165 cat_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
166 cat_title BLOB NOT NULL, cat_pages INTEGER DEFAULT 0 NOT NULL,
167 cat_subcats INTEGER DEFAULT 0 NOT NULL,
168 cat_files INTEGER DEFAULT 0 NOT NULL
170 CREATE UNIQUE INDEX cat_title ON /*_*/category (cat_title);
171 CREATE INDEX cat_pages ON /*_*/category (cat_pages);
172 CREATE TABLE /*_*/watchlist_expiry (
173 we_item INTEGER UNSIGNED NOT NULL,
174 we_expiry BLOB NOT NULL,
177 CREATE INDEX we_expiry ON /*_*/watchlist_expiry (we_expiry);
178 CREATE TABLE /*_*/change_tag_def (
179 ctd_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
180 ctd_name BLOB NOT NULL, ctd_user_defined SMALLINT NOT NULL,
181 ctd_count BIGINT UNSIGNED DEFAULT 0 NOT NULL
183 CREATE UNIQUE INDEX ctd_name ON /*_*/change_tag_def (ctd_name);
184 CREATE INDEX ctd_count ON /*_*/change_tag_def (ctd_count);
185 CREATE INDEX ctd_user_defined ON /*_*/change_tag_def (ctd_user_defined);
186 CREATE TABLE /*_*/ipblocks_restrictions (
187 ir_ipb_id INTEGER NOT NULL,
188 ir_type SMALLINT NOT NULL,
189 ir_value INTEGER NOT NULL,
190 PRIMARY KEY(ir_ipb_id, ir_type, ir_value)
192 CREATE INDEX ir_type_value ON /*_*/ipblocks_restrictions (ir_type, ir_value);
193 CREATE TABLE /*_*/querycache (
194 qc_type BLOB NOT NULL, qc_value INTEGER UNSIGNED DEFAULT 0 NOT NULL,
195 qc_namespace INTEGER DEFAULT 0 NOT NULL,
196 qc_title BLOB DEFAULT '' NOT NULL
198 CREATE INDEX qc_type ON /*_*/querycache (qc_type, qc_value);
199 CREATE TABLE /*_*/querycachetwo (
200 qcc_type BLOB NOT NULL, qcc_value INTEGER UNSIGNED DEFAULT 0 NOT NULL,
201 qcc_namespace INTEGER DEFAULT 0 NOT NULL,
202 qcc_title BLOB DEFAULT '' NOT NULL,
203 qcc_namespacetwo INTEGER DEFAULT 0 NOT NULL,
204 qcc_titletwo BLOB DEFAULT '' NOT NULL
206 CREATE INDEX qcc_type ON /*_*/querycachetwo (qcc_type, qcc_value);
207 CREATE INDEX qcc_title ON /*_*/querycachetwo (
208 qcc_type, qcc_namespace, qcc_title
210 CREATE INDEX qcc_titletwo ON /*_*/querycachetwo (
211 qcc_type, qcc_namespacetwo, qcc_titletwo
213 CREATE TABLE /*_*/page_restrictions (
214 pr_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
215 pr_page INTEGER NOT NULL, pr_type BLOB NOT NULL,
216 pr_level BLOB NOT NULL, pr_cascade SMALLINT NOT NULL,
217 pr_user INTEGER UNSIGNED DEFAULT NULL,
218 pr_expiry BLOB DEFAULT NULL
220 CREATE UNIQUE INDEX pr_pagetype ON /*_*/page_restrictions (pr_page, pr_type);
221 CREATE INDEX pr_typelevel ON /*_*/page_restrictions (pr_type, pr_level);
222 CREATE INDEX pr_level ON /*_*/page_restrictions (pr_level);
223 CREATE INDEX pr_cascade ON /*_*/page_restrictions (pr_cascade);
224 CREATE TABLE /*_*/user_groups (
225 ug_user INTEGER UNSIGNED DEFAULT 0 NOT NULL,
226 ug_group BLOB DEFAULT '' NOT NULL,
227 ug_expiry BLOB DEFAULT NULL,
228 PRIMARY KEY(ug_user, ug_group)
230 CREATE INDEX ug_group ON /*_*/user_groups (ug_group);
231 CREATE INDEX ug_expiry ON /*_*/user_groups (ug_expiry);
232 CREATE TABLE /*_*/querycache_info (
233 qci_type BLOB DEFAULT '' NOT NULL,
234 qci_timestamp BLOB DEFAULT '19700101000000' NOT NULL,
235 PRIMARY KEY(qci_type)
237 CREATE TABLE /*_*/watchlist (
238 wl_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
239 wl_user INTEGER UNSIGNED NOT NULL,
240 wl_namespace INTEGER DEFAULT 0 NOT NULL,
241 wl_title BLOB DEFAULT '' NOT NULL, wl_notificationtimestamp BLOB DEFAULT NULL
243 CREATE UNIQUE INDEX wl_user ON /*_*/watchlist (wl_user, wl_namespace, wl_title);
244 CREATE INDEX wl_namespace_title ON /*_*/watchlist (wl_namespace, wl_title);
245 CREATE INDEX wl_user_notificationtimestamp ON /*_*/watchlist (
246 wl_user, wl_notificationtimestamp
248 CREATE TABLE /*_*/sites (
249 site_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
250 site_global_key BLOB NOT NULL,
251 site_type BLOB NOT NULL,
252 site_group BLOB NOT NULL,
253 site_source BLOB NOT NULL,
254 site_language BLOB NOT NULL,
255 site_protocol BLOB NOT NULL,
256 site_domain VARCHAR(255) NOT NULL,
257 site_data BLOB NOT NULL,
258 site_forward SMALLINT NOT NULL,
259 site_config BLOB NOT NULL
261 CREATE UNIQUE INDEX site_global_key ON /*_*/sites (site_global_key);
262 CREATE INDEX site_type ON /*_*/sites (site_type);
263 CREATE INDEX site_group ON /*_*/sites (site_group);
264 CREATE INDEX site_source ON /*_*/sites (site_source);
265 CREATE INDEX site_language ON /*_*/sites (site_language);
266 CREATE INDEX site_protocol ON /*_*/sites (site_protocol);
267 CREATE INDEX site_domain ON /*_*/sites (site_domain);
268 CREATE INDEX site_forward ON /*_*/sites (site_forward);
269 CREATE TABLE /*_*/user_newtalk (
270 user_id INTEGER UNSIGNED DEFAULT 0 NOT NULL,
271 user_ip BLOB DEFAULT '' NOT NULL, user_last_timestamp BLOB DEFAULT NULL
273 CREATE INDEX un_user_id ON /*_*/user_newtalk (user_id);
274 CREATE INDEX un_user_ip ON /*_*/user_newtalk (user_ip);
275 CREATE TABLE /*_*/interwiki (
276 iw_prefix VARCHAR(32) NOT NULL,
277 iw_url BLOB NOT NULL,
278 iw_api BLOB NOT NULL,
279 iw_wikiid VARCHAR(64) NOT NULL,
280 iw_local SMALLINT NOT NULL,
281 iw_trans SMALLINT DEFAULT 0 NOT NULL,
282 PRIMARY KEY(iw_prefix)
284 CREATE TABLE /*_*/protected_titles (
285 pt_namespace INTEGER NOT NULL,
286 pt_title BLOB NOT NULL,
287 pt_user INTEGER UNSIGNED NOT NULL,
288 pt_reason_id BIGINT UNSIGNED NOT NULL,
289 pt_timestamp BLOB NOT NULL,
290 pt_expiry BLOB NOT NULL,
291 pt_create_perm BLOB NOT NULL,
292 PRIMARY KEY(pt_namespace, pt_title)
294 CREATE INDEX pt_timestamp ON /*_*/protected_titles (pt_timestamp);
295 CREATE TABLE /*_*/externallinks (
296 el_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
297 el_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
298 el_to BLOB NOT NULL, el_index BLOB NOT NULL,
299 el_index_60 BLOB NOT NULL
301 CREATE INDEX el_from ON /*_*/externallinks (el_from, el_to);
302 CREATE INDEX el_to ON /*_*/externallinks (el_to, el_from);
303 CREATE INDEX el_index ON /*_*/externallinks (el_index);
304 CREATE INDEX el_index_60 ON /*_*/externallinks (el_index_60, el_id);
305 CREATE INDEX el_from_index_60 ON /*_*/externallinks (el_from, el_index_60, el_id);
306 CREATE TABLE /*_*/ip_changes (
307 ipc_rev_id INTEGER UNSIGNED DEFAULT 0 NOT NULL,
308 ipc_rev_timestamp BLOB NOT NULL,
309 ipc_hex BLOB DEFAULT '' NOT NULL,
310 PRIMARY KEY(ipc_rev_id)
312 CREATE INDEX ipc_rev_timestamp ON /*_*/ip_changes (ipc_rev_timestamp);
313 CREATE INDEX ipc_hex_time ON /*_*/ip_changes (ipc_hex, ipc_rev_timestamp);
314 CREATE TABLE /*_*/revision_comment_temp (
315 revcomment_rev INTEGER UNSIGNED NOT NULL,
316 revcomment_comment_id BIGINT UNSIGNED NOT NULL,
318 revcomment_rev, revcomment_comment_id
321 CREATE UNIQUE INDEX revcomment_rev ON /*_*/revision_comment_temp (revcomment_rev);
322 CREATE TABLE /*_*/revision_actor_temp (
323 revactor_rev INTEGER UNSIGNED NOT NULL,
324 revactor_actor BIGINT UNSIGNED NOT NULL,
325 revactor_timestamp BLOB NOT NULL,
326 revactor_page INTEGER UNSIGNED NOT NULL,
327 PRIMARY KEY(revactor_rev, revactor_actor)
329 CREATE UNIQUE INDEX revactor_rev ON /*_*/revision_actor_temp (revactor_rev);
330 CREATE INDEX actor_timestamp ON /*_*/revision_actor_temp (
331 revactor_actor, revactor_timestamp
333 CREATE INDEX page_actor_timestamp ON /*_*/revision_actor_temp (
334 revactor_page, revactor_actor, revactor_timestamp
336 CREATE TABLE /*_*/page_props (
337 pp_page INTEGER NOT NULL,
338 pp_propname BLOB NOT NULL,
339 pp_value BLOB NOT NULL,
340 pp_sortkey DOUBLE PRECISION DEFAULT NULL,
341 PRIMARY KEY(pp_page, pp_propname)
343 CREATE UNIQUE INDEX pp_propname_page ON /*_*/page_props (pp_propname, pp_page);
344 CREATE UNIQUE INDEX pp_propname_sortkey_page ON /*_*/page_props (pp_propname, pp_sortkey, pp_page);
345 CREATE TABLE /*_*/job (
346 job_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
347 job_cmd BLOB DEFAULT '' NOT NULL, job_namespace INTEGER NOT NULL,
348 job_title BLOB NOT NULL, job_timestamp BLOB DEFAULT NULL,
349 job_params BLOB NOT NULL, job_random INTEGER UNSIGNED DEFAULT 0 NOT NULL,
350 job_attempts INTEGER UNSIGNED DEFAULT 0 NOT NULL,
351 job_token BLOB DEFAULT '' NOT NULL,
352 job_token_timestamp BLOB DEFAULT NULL,
353 job_sha1 BLOB DEFAULT '' NOT NULL
355 CREATE INDEX job_sha1 ON /*_*/job (job_sha1);
356 CREATE INDEX job_cmd_token ON /*_*/job (job_cmd, job_token, job_random);
357 CREATE INDEX job_cmd_token_id ON /*_*/job (job_cmd, job_token, job_id);
358 CREATE INDEX job_cmd ON /*_*/job (
359 job_cmd, job_namespace, job_title,
362 CREATE INDEX job_timestamp ON /*_*/job (job_timestamp);
363 CREATE TABLE /*_*/slot_roles (
364 role_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
365 role_name BLOB NOT NULL
367 CREATE UNIQUE INDEX role_name ON /*_*/slot_roles (role_name);
368 CREATE TABLE /*_*/content_models (
369 model_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
370 model_name BLOB NOT NULL
372 CREATE UNIQUE INDEX model_name ON /*_*/content_models (model_name);
373 CREATE TABLE /*_*/categorylinks (
374 cl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
375 cl_to BLOB DEFAULT '' NOT NULL,
376 cl_sortkey BLOB DEFAULT '' NOT NULL,
377 cl_sortkey_prefix BLOB DEFAULT '' NOT NULL,
378 cl_timestamp DATETIME NOT NULL,
379 cl_collation BLOB DEFAULT '' NOT NULL,
380 cl_type TEXT DEFAULT 'page' NOT NULL,
381 PRIMARY KEY(cl_from, cl_to)
383 CREATE INDEX cl_sortkey ON /*_*/categorylinks (
384 cl_to, cl_type, cl_sortkey, cl_from
386 CREATE INDEX cl_timestamp ON /*_*/categorylinks (cl_to, cl_timestamp);
387 CREATE INDEX cl_collation_ext ON /*_*/categorylinks (
388 cl_collation, cl_to, cl_type, cl_from
390 CREATE TABLE /*_*/logging (
391 log_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
392 log_type BLOB DEFAULT '' NOT NULL, log_action BLOB DEFAULT '' NOT NULL,
393 log_timestamp BLOB DEFAULT '19700101000000' NOT NULL,
394 log_actor BIGINT UNSIGNED NOT NULL,
395 log_namespace INTEGER DEFAULT 0 NOT NULL,
396 log_title BLOB DEFAULT '' NOT NULL,
397 log_page INTEGER UNSIGNED DEFAULT NULL,
398 log_comment_id BIGINT UNSIGNED NOT NULL,
399 log_params BLOB NOT NULL, log_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL
401 CREATE INDEX log_type_time ON /*_*/logging (log_type, log_timestamp);
402 CREATE INDEX log_actor_time ON /*_*/logging (log_actor, log_timestamp);
403 CREATE INDEX log_page_time ON /*_*/logging (
404 log_namespace, log_title, log_timestamp
406 CREATE INDEX log_times ON /*_*/logging (log_timestamp);
407 CREATE INDEX log_actor_type_time ON /*_*/logging (
408 log_actor, log_type, log_timestamp
410 CREATE INDEX log_page_id_time ON /*_*/logging (log_page, log_timestamp);
411 CREATE INDEX log_type_action ON /*_*/logging (
412 log_type, log_action, log_timestamp
414 CREATE TABLE /*_*/uploadstash (
415 us_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
416 us_user INTEGER UNSIGNED NOT NULL,
417 us_key VARCHAR(255) NOT NULL,
418 us_orig_path VARCHAR(255) NOT NULL,
419 us_path VARCHAR(255) NOT NULL,
420 us_source_type VARCHAR(50) DEFAULT NULL,
421 us_timestamp BLOB NOT NULL,
422 us_status VARCHAR(50) NOT NULL,
423 us_chunk_inx INTEGER UNSIGNED DEFAULT NULL,
424 us_props BLOB DEFAULT NULL,
425 us_size INTEGER UNSIGNED NOT NULL,
426 us_sha1 VARCHAR(31) NOT NULL,
427 us_mime VARCHAR(255) DEFAULT NULL,
428 us_media_type TEXT DEFAULT NULL,
429 us_image_width INTEGER UNSIGNED DEFAULT NULL,
430 us_image_height INTEGER UNSIGNED DEFAULT NULL,
431 us_image_bits SMALLINT UNSIGNED DEFAULT NULL
433 CREATE INDEX us_user ON /*_*/uploadstash (us_user);
434 CREATE UNIQUE INDEX us_key ON /*_*/uploadstash (us_key);
435 CREATE INDEX us_timestamp ON /*_*/uploadstash (us_timestamp);
436 CREATE TABLE /*_*/filearchive (
437 fa_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
438 fa_name BLOB DEFAULT '' NOT NULL, fa_archive_name BLOB DEFAULT '',
439 fa_storage_group BLOB DEFAULT NULL,
440 fa_storage_key BLOB DEFAULT '', fa_deleted_user INTEGER DEFAULT NULL,
441 fa_deleted_timestamp BLOB DEFAULT NULL,
442 fa_deleted_reason_id BIGINT UNSIGNED NOT NULL,
443 fa_size INTEGER UNSIGNED DEFAULT 0,
444 fa_width INTEGER DEFAULT 0, fa_height INTEGER DEFAULT 0,
445 fa_metadata BLOB DEFAULT NULL, fa_bits INTEGER DEFAULT 0,
446 fa_media_type TEXT DEFAULT NULL, fa_major_mime TEXT DEFAULT 'unknown',
447 fa_minor_mime BLOB DEFAULT 'unknown',
448 fa_description_id BIGINT UNSIGNED NOT NULL,
449 fa_actor BIGINT UNSIGNED NOT NULL,
450 fa_timestamp BLOB DEFAULT NULL, fa_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
451 fa_sha1 BLOB DEFAULT '' NOT NULL
453 CREATE INDEX fa_name ON /*_*/filearchive (fa_name, fa_timestamp);
454 CREATE INDEX fa_storage_group ON /*_*/filearchive (
455 fa_storage_group, fa_storage_key
457 CREATE INDEX fa_deleted_timestamp ON /*_*/filearchive (fa_deleted_timestamp);
458 CREATE INDEX fa_actor_timestamp ON /*_*/filearchive (fa_actor, fa_timestamp);
459 CREATE INDEX fa_sha1 ON /*_*/filearchive (fa_sha1);
460 CREATE TABLE /*_*/text (
461 old_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
462 old_text BLOB NOT NULL, old_flags BLOB NOT NULL
464 CREATE TABLE /*_*/oldimage (
465 oi_name BLOB DEFAULT '' NOT NULL, oi_archive_name BLOB DEFAULT '' NOT NULL,
466 oi_size INTEGER UNSIGNED DEFAULT 0 NOT NULL,
467 oi_width INTEGER DEFAULT 0 NOT NULL,
468 oi_height INTEGER DEFAULT 0 NOT NULL,
469 oi_bits INTEGER DEFAULT 0 NOT NULL,
470 oi_description_id BIGINT UNSIGNED NOT NULL,
471 oi_actor BIGINT UNSIGNED NOT NULL,
472 oi_timestamp BLOB NOT NULL, oi_metadata BLOB NOT NULL,
473 oi_media_type TEXT DEFAULT NULL, oi_major_mime TEXT DEFAULT 'unknown' NOT NULL,
474 oi_minor_mime BLOB DEFAULT 'unknown' NOT NULL,
475 oi_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
476 oi_sha1 BLOB DEFAULT '' NOT NULL
478 CREATE INDEX oi_actor_timestamp ON /*_*/oldimage (oi_actor, oi_timestamp);
479 CREATE INDEX oi_name_timestamp ON /*_*/oldimage (oi_name, oi_timestamp);
480 CREATE INDEX oi_name_archive_name ON /*_*/oldimage (oi_name, oi_archive_name);
481 CREATE INDEX oi_sha1 ON /*_*/oldimage (oi_sha1);
482 CREATE INDEX oi_timestamp ON /*_*/oldimage (oi_timestamp);
483 CREATE TABLE /*_*/objectcache (
484 keyname BLOB DEFAULT '' NOT NULL,
485 value BLOB DEFAULT NULL,
486 exptime BLOB NOT NULL,
487 modtoken VARCHAR(17) DEFAULT '00000000000000000' NOT NULL,
488 flags INTEGER UNSIGNED DEFAULT NULL,
491 CREATE INDEX exptime ON /*_*/objectcache (exptime);
492 CREATE TABLE /*_*/ipblocks (
493 ipb_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
494 ipb_address BLOB NOT NULL, ipb_user INTEGER UNSIGNED DEFAULT 0 NOT NULL,
495 ipb_by_actor BIGINT UNSIGNED NOT NULL,
496 ipb_reason_id BIGINT UNSIGNED NOT NULL,
497 ipb_timestamp BLOB NOT NULL, ipb_auto SMALLINT DEFAULT 0 NOT NULL,
498 ipb_anon_only SMALLINT DEFAULT 0 NOT NULL,
499 ipb_create_account SMALLINT DEFAULT 1 NOT NULL,
500 ipb_enable_autoblock SMALLINT DEFAULT 1 NOT NULL,
501 ipb_expiry BLOB NOT NULL, ipb_range_start BLOB NOT NULL,
502 ipb_range_end BLOB NOT NULL, ipb_deleted SMALLINT DEFAULT 0 NOT NULL,
503 ipb_block_email SMALLINT DEFAULT 0 NOT NULL,
504 ipb_allow_usertalk SMALLINT DEFAULT 0 NOT NULL,
505 ipb_parent_block_id INTEGER DEFAULT NULL,
506 ipb_sitewide SMALLINT DEFAULT 1 NOT NULL
508 CREATE UNIQUE INDEX ipb_address_unique ON /*_*/ipblocks (ipb_address, ipb_user, ipb_auto);
509 CREATE INDEX ipb_user ON /*_*/ipblocks (ipb_user);
510 CREATE INDEX ipb_range ON /*_*/ipblocks (ipb_range_start, ipb_range_end);
511 CREATE INDEX ipb_timestamp ON /*_*/ipblocks (ipb_timestamp);
512 CREATE INDEX ipb_expiry ON /*_*/ipblocks (ipb_expiry);
513 CREATE INDEX ipb_parent_block_id ON /*_*/ipblocks (ipb_parent_block_id);
514 CREATE TABLE /*_*/image (
515 img_name BLOB DEFAULT '' NOT NULL,
516 img_size INTEGER UNSIGNED DEFAULT 0 NOT NULL,
517 img_width INTEGER DEFAULT 0 NOT NULL,
518 img_height INTEGER DEFAULT 0 NOT NULL,
519 img_metadata BLOB NOT NULL,
520 img_bits INTEGER DEFAULT 0 NOT NULL,
521 img_media_type TEXT DEFAULT NULL,
522 img_major_mime TEXT DEFAULT 'unknown' NOT NULL,
523 img_minor_mime BLOB DEFAULT 'unknown' NOT NULL,
524 img_description_id BIGINT UNSIGNED NOT NULL,
525 img_actor BIGINT UNSIGNED NOT NULL,
526 img_timestamp BLOB NOT NULL,
527 img_sha1 BLOB DEFAULT '' NOT NULL,
528 PRIMARY KEY(img_name)
530 CREATE INDEX img_actor_timestamp ON /*_*/image (img_actor, img_timestamp);
531 CREATE INDEX img_size ON /*_*/image (img_size);
532 CREATE INDEX img_timestamp ON /*_*/image (img_timestamp);
533 CREATE INDEX img_sha1 ON /*_*/image (img_sha1);
534 CREATE INDEX img_media_mime ON /*_*/image (
535 img_media_type, img_major_mime, img_minor_mime
537 CREATE TABLE /*_*/recentchanges (
538 rc_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
539 rc_timestamp BLOB NOT NULL, rc_actor BIGINT UNSIGNED NOT NULL,
540 rc_namespace INTEGER DEFAULT 0 NOT NULL,
541 rc_title BLOB DEFAULT '' NOT NULL, rc_comment_id BIGINT UNSIGNED NOT NULL,
542 rc_minor SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
543 rc_bot SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
544 rc_new SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
545 rc_cur_id INTEGER UNSIGNED DEFAULT 0 NOT NULL,
546 rc_this_oldid INTEGER UNSIGNED DEFAULT 0 NOT NULL,
547 rc_last_oldid INTEGER UNSIGNED DEFAULT 0 NOT NULL,
548 rc_type SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
549 rc_source BLOB DEFAULT '' NOT NULL,
550 rc_patrolled SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
551 rc_ip BLOB DEFAULT '' NOT NULL, rc_old_len INTEGER DEFAULT NULL,
552 rc_new_len INTEGER DEFAULT NULL, rc_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
553 rc_logid INTEGER UNSIGNED DEFAULT 0 NOT NULL,
554 rc_log_type BLOB DEFAULT NULL, rc_log_action BLOB DEFAULT NULL,
555 rc_params BLOB DEFAULT NULL
557 CREATE INDEX rc_timestamp ON /*_*/recentchanges (rc_timestamp);
558 CREATE INDEX rc_namespace_title_timestamp ON /*_*/recentchanges (
559 rc_namespace, rc_title, rc_timestamp
561 CREATE INDEX rc_cur_id ON /*_*/recentchanges (rc_cur_id);
562 CREATE INDEX rc_new_name_timestamp ON /*_*/recentchanges (
563 rc_new, rc_namespace, rc_timestamp
565 CREATE INDEX rc_ip ON /*_*/recentchanges (rc_ip);
566 CREATE INDEX rc_ns_actor ON /*_*/recentchanges (rc_namespace, rc_actor);
567 CREATE INDEX rc_actor ON /*_*/recentchanges (rc_actor, rc_timestamp);
568 CREATE INDEX rc_name_type_patrolled_timestamp ON /*_*/recentchanges (
569 rc_namespace, rc_type, rc_patrolled,
572 CREATE INDEX rc_this_oldid ON /*_*/recentchanges (rc_this_oldid);
573 CREATE TABLE /*_*/archive (
574 ar_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
575 ar_namespace INTEGER DEFAULT 0 NOT NULL,
576 ar_title BLOB DEFAULT '' NOT NULL, ar_comment_id BIGINT UNSIGNED NOT NULL,
577 ar_actor BIGINT UNSIGNED NOT NULL,
578 ar_timestamp BLOB NOT NULL, ar_minor_edit SMALLINT DEFAULT 0 NOT NULL,
579 ar_rev_id INTEGER UNSIGNED NOT NULL,
580 ar_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
581 ar_len INTEGER UNSIGNED DEFAULT NULL,
582 ar_page_id INTEGER UNSIGNED DEFAULT NULL,
583 ar_parent_id INTEGER UNSIGNED DEFAULT NULL,
584 ar_sha1 BLOB DEFAULT '' NOT NULL
586 CREATE INDEX ar_name_title_timestamp ON /*_*/archive (
587 ar_namespace, ar_title, ar_timestamp
589 CREATE INDEX ar_actor_timestamp ON /*_*/archive (ar_actor, ar_timestamp);
590 CREATE UNIQUE INDEX ar_revid_uniq ON /*_*/archive (ar_rev_id);
591 CREATE TABLE /*_*/page (
592 page_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
593 page_namespace INTEGER NOT NULL, page_title BLOB NOT NULL,
594 page_restrictions BLOB DEFAULT NULL,
595 page_is_redirect SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
596 page_is_new SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
597 page_random DOUBLE PRECISION NOT NULL,
598 page_touched BLOB NOT NULL, page_links_updated BLOB DEFAULT NULL,
599 page_latest INTEGER UNSIGNED NOT NULL,
600 page_len INTEGER UNSIGNED NOT NULL,
601 page_content_model BLOB DEFAULT NULL,
602 page_lang BLOB DEFAULT NULL
604 CREATE UNIQUE INDEX page_name_title ON /*_*/page (page_namespace, page_title);
605 CREATE INDEX page_random ON /*_*/page (page_random);
606 CREATE INDEX page_len ON /*_*/page (page_len);
607 CREATE INDEX page_redirect_namespace_len ON /*_*/page (
608 page_is_redirect, page_namespace,
611 CREATE TABLE /*_*/user (
612 user_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
613 user_name BLOB DEFAULT '' NOT NULL,
614 user_real_name BLOB DEFAULT '' NOT NULL,
615 user_password BLOB NOT NULL, user_newpassword BLOB NOT NULL,
616 user_newpass_time BLOB DEFAULT NULL,
617 user_email CLOB NOT NULL, user_touched BLOB NOT NULL,
618 user_token BLOB DEFAULT '' NOT NULL,
619 user_email_authenticated BLOB DEFAULT NULL,
620 user_email_token BLOB DEFAULT NULL,
621 user_email_token_expires BLOB DEFAULT NULL,
622 user_registration BLOB DEFAULT NULL,
623 user_editcount INTEGER DEFAULT NULL,
624 user_password_expires BLOB DEFAULT NULL
626 CREATE UNIQUE INDEX user_name ON /*_*/user (user_name);
627 CREATE INDEX user_email_token ON /*_*/user (user_email_token);
628 CREATE INDEX user_email ON /*_*/user (user_email);
629 CREATE TABLE /*_*/revision (
630 rev_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
631 rev_page INTEGER UNSIGNED NOT NULL,
632 rev_comment_id BIGINT UNSIGNED DEFAULT 0 NOT NULL,
633 rev_actor BIGINT UNSIGNED DEFAULT 0 NOT NULL,
634 rev_timestamp BLOB NOT NULL, rev_minor_edit SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
635 rev_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
636 rev_len INTEGER UNSIGNED DEFAULT NULL,
637 rev_parent_id INTEGER UNSIGNED DEFAULT NULL,
638 rev_sha1 BLOB DEFAULT '' NOT NULL
640 CREATE INDEX rev_page_id ON /*_*/revision (rev_page, rev_id);
641 CREATE INDEX rev_timestamp ON /*_*/revision (rev_timestamp);
642 CREATE INDEX rev_page_timestamp ON /*_*/revision (rev_page, rev_timestamp);
643 CREATE INDEX rev_actor_timestamp ON /*_*/revision (rev_actor, rev_timestamp, rev_id);
644 CREATE INDEX rev_page_actor_timestamp ON /*_*/revision (
645 rev_page, rev_actor, rev_timestamp
647 CREATE TABLE /*_*/searchindex (
648 si_page INTEGER UNSIGNED NOT NULL,
649 si_title VARCHAR(255) DEFAULT '' NOT NULL,
650 si_text CLOB NOT NULL
652 CREATE UNIQUE INDEX si_page ON /*_*/searchindex (si_page);
653 CREATE INDEX si_title ON /*_*/searchindex (si_title);
654 CREATE INDEX si_text ON /*_*/searchindex (si_text);