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 pl_target_id BIGINT UNSIGNED DEFAULT NULL,
121 PRIMARY KEY(pl_from, pl_namespace, pl_title)
123 CREATE INDEX pl_namespace ON /*_*/pagelinks (pl_namespace, pl_title, pl_from);
124 CREATE INDEX pl_backlinks_namespace ON /*_*/pagelinks (
125 pl_from_namespace, pl_namespace,
128 CREATE INDEX pl_target_id ON /*_*/pagelinks (pl_target_id, pl_from);
129 CREATE INDEX pl_backlinks_namespace_target_id ON /*_*/pagelinks (
130 pl_from_namespace, pl_target_id,
133 CREATE TABLE /*_*/templatelinks (
134 tl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
135 tl_target_id BIGINT UNSIGNED NOT NULL,
136 tl_from_namespace INTEGER DEFAULT 0 NOT NULL,
137 PRIMARY KEY(tl_from, tl_target_id)
139 CREATE INDEX tl_target_id ON /*_*/templatelinks (tl_target_id, tl_from);
140 CREATE INDEX tl_backlinks_namespace_target_id ON /*_*/templatelinks (
141 tl_from_namespace, tl_target_id,
144 CREATE TABLE /*_*/imagelinks (
145 il_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
146 il_to BLOB DEFAULT '' NOT NULL,
147 il_from_namespace INTEGER DEFAULT 0 NOT NULL,
148 PRIMARY KEY(il_from, il_to)
150 CREATE INDEX il_to ON /*_*/imagelinks (il_to, il_from);
151 CREATE INDEX il_backlinks_namespace ON /*_*/imagelinks (
152 il_from_namespace, il_to, il_from
154 CREATE TABLE /*_*/langlinks (
155 ll_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
156 ll_lang BLOB DEFAULT '' NOT NULL,
157 ll_title BLOB DEFAULT '' NOT NULL,
158 PRIMARY KEY(ll_from, ll_lang)
160 CREATE INDEX ll_lang ON /*_*/langlinks (ll_lang, ll_title);
161 CREATE TABLE /*_*/iwlinks (
162 iwl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
163 iwl_prefix BLOB DEFAULT '' NOT NULL,
164 iwl_title BLOB DEFAULT '' NOT NULL,
165 PRIMARY KEY(iwl_from, iwl_prefix, iwl_title)
167 CREATE INDEX iwl_prefix_title_from ON /*_*/iwlinks (iwl_prefix, iwl_title, iwl_from);
168 CREATE INDEX iwl_prefix_from_title ON /*_*/iwlinks (iwl_prefix, iwl_from, iwl_title);
169 CREATE TABLE /*_*/category (
170 cat_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
171 cat_title BLOB NOT NULL, cat_pages INTEGER DEFAULT 0 NOT NULL,
172 cat_subcats INTEGER DEFAULT 0 NOT NULL,
173 cat_files INTEGER DEFAULT 0 NOT NULL
175 CREATE UNIQUE INDEX cat_title ON /*_*/category (cat_title);
176 CREATE INDEX cat_pages ON /*_*/category (cat_pages);
177 CREATE TABLE /*_*/watchlist_expiry (
178 we_item INTEGER UNSIGNED NOT NULL,
179 we_expiry BLOB NOT NULL,
182 CREATE INDEX we_expiry ON /*_*/watchlist_expiry (we_expiry);
183 CREATE TABLE /*_*/change_tag_def (
184 ctd_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
185 ctd_name BLOB NOT NULL, ctd_user_defined SMALLINT NOT NULL,
186 ctd_count BIGINT UNSIGNED DEFAULT 0 NOT NULL
188 CREATE UNIQUE INDEX ctd_name ON /*_*/change_tag_def (ctd_name);
189 CREATE INDEX ctd_count ON /*_*/change_tag_def (ctd_count);
190 CREATE INDEX ctd_user_defined ON /*_*/change_tag_def (ctd_user_defined);
191 CREATE TABLE /*_*/ipblocks_restrictions (
192 ir_ipb_id INTEGER UNSIGNED NOT NULL,
193 ir_type SMALLINT NOT NULL,
194 ir_value INTEGER UNSIGNED NOT NULL,
195 PRIMARY KEY(ir_ipb_id, ir_type, ir_value)
197 CREATE INDEX ir_type_value ON /*_*/ipblocks_restrictions (ir_type, ir_value);
198 CREATE TABLE /*_*/querycache (
199 qc_type BLOB NOT NULL, qc_value INTEGER UNSIGNED DEFAULT 0 NOT NULL,
200 qc_namespace INTEGER DEFAULT 0 NOT NULL,
201 qc_title BLOB DEFAULT '' NOT NULL
203 CREATE INDEX qc_type ON /*_*/querycache (qc_type, qc_value);
204 CREATE TABLE /*_*/querycachetwo (
205 qcc_type BLOB NOT NULL, qcc_value INTEGER UNSIGNED DEFAULT 0 NOT NULL,
206 qcc_namespace INTEGER DEFAULT 0 NOT NULL,
207 qcc_title BLOB DEFAULT '' NOT NULL,
208 qcc_namespacetwo INTEGER DEFAULT 0 NOT NULL,
209 qcc_titletwo BLOB DEFAULT '' NOT NULL
211 CREATE INDEX qcc_type ON /*_*/querycachetwo (qcc_type, qcc_value);
212 CREATE INDEX qcc_title ON /*_*/querycachetwo (
213 qcc_type, qcc_namespace, qcc_title
215 CREATE INDEX qcc_titletwo ON /*_*/querycachetwo (
216 qcc_type, qcc_namespacetwo, qcc_titletwo
218 CREATE TABLE /*_*/page_restrictions (
219 pr_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
220 pr_page INTEGER UNSIGNED NOT NULL,
221 pr_type BLOB NOT NULL, pr_level BLOB NOT NULL,
222 pr_cascade SMALLINT NOT NULL, pr_expiry BLOB DEFAULT NULL
224 CREATE UNIQUE INDEX pr_pagetype ON /*_*/page_restrictions (pr_page, pr_type);
225 CREATE INDEX pr_typelevel ON /*_*/page_restrictions (pr_type, pr_level);
226 CREATE INDEX pr_level ON /*_*/page_restrictions (pr_level);
227 CREATE INDEX pr_cascade ON /*_*/page_restrictions (pr_cascade);
228 CREATE TABLE /*_*/user_groups (
229 ug_user INTEGER UNSIGNED DEFAULT 0 NOT NULL,
230 ug_group BLOB DEFAULT '' NOT NULL,
231 ug_expiry BLOB DEFAULT NULL,
232 PRIMARY KEY(ug_user, ug_group)
234 CREATE INDEX ug_group ON /*_*/user_groups (ug_group);
235 CREATE INDEX ug_expiry ON /*_*/user_groups (ug_expiry);
236 CREATE TABLE /*_*/querycache_info (
237 qci_type BLOB DEFAULT '' NOT NULL,
238 qci_timestamp BLOB DEFAULT '19700101000000' NOT NULL,
239 PRIMARY KEY(qci_type)
241 CREATE TABLE /*_*/watchlist (
242 wl_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
243 wl_user INTEGER UNSIGNED NOT NULL,
244 wl_namespace INTEGER DEFAULT 0 NOT NULL,
245 wl_title BLOB DEFAULT '' NOT NULL, wl_notificationtimestamp BLOB DEFAULT NULL
247 CREATE UNIQUE INDEX wl_user ON /*_*/watchlist (wl_user, wl_namespace, wl_title);
248 CREATE INDEX wl_namespace_title ON /*_*/watchlist (wl_namespace, wl_title);
249 CREATE INDEX wl_user_notificationtimestamp ON /*_*/watchlist (
250 wl_user, wl_notificationtimestamp
252 CREATE TABLE /*_*/sites (
253 site_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
254 site_global_key BLOB NOT NULL,
255 site_type BLOB NOT NULL,
256 site_group BLOB NOT NULL,
257 site_source BLOB NOT NULL,
258 site_language BLOB NOT NULL,
259 site_protocol BLOB NOT NULL,
260 site_domain VARCHAR(255) NOT NULL,
261 site_data BLOB NOT NULL,
262 site_forward SMALLINT NOT NULL,
263 site_config BLOB NOT NULL
265 CREATE UNIQUE INDEX site_global_key ON /*_*/sites (site_global_key);
266 CREATE INDEX site_type ON /*_*/sites (site_type);
267 CREATE INDEX site_group ON /*_*/sites (site_group);
268 CREATE INDEX site_source ON /*_*/sites (site_source);
269 CREATE INDEX site_language ON /*_*/sites (site_language);
270 CREATE INDEX site_protocol ON /*_*/sites (site_protocol);
271 CREATE INDEX site_domain ON /*_*/sites (site_domain);
272 CREATE INDEX site_forward ON /*_*/sites (site_forward);
273 CREATE TABLE /*_*/user_newtalk (
274 user_id INTEGER UNSIGNED DEFAULT 0 NOT NULL,
275 user_ip BLOB DEFAULT '' NOT NULL, user_last_timestamp BLOB DEFAULT NULL
277 CREATE INDEX un_user_id ON /*_*/user_newtalk (user_id);
278 CREATE INDEX un_user_ip ON /*_*/user_newtalk (user_ip);
279 CREATE TABLE /*_*/interwiki (
280 iw_prefix VARCHAR(32) NOT NULL,
281 iw_url BLOB NOT NULL,
282 iw_api BLOB NOT NULL,
283 iw_wikiid VARCHAR(64) NOT NULL,
284 iw_local SMALLINT NOT NULL,
285 iw_trans SMALLINT DEFAULT 0 NOT NULL,
286 PRIMARY KEY(iw_prefix)
288 CREATE TABLE /*_*/protected_titles (
289 pt_namespace INTEGER NOT NULL,
290 pt_title BLOB NOT NULL,
291 pt_user INTEGER UNSIGNED NOT NULL,
292 pt_reason_id BIGINT UNSIGNED NOT NULL,
293 pt_timestamp BLOB NOT NULL,
294 pt_expiry BLOB NOT NULL,
295 pt_create_perm BLOB NOT NULL,
296 PRIMARY KEY(pt_namespace, pt_title)
298 CREATE INDEX pt_timestamp ON /*_*/protected_titles (pt_timestamp);
299 CREATE TABLE /*_*/externallinks (
300 el_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
301 el_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
302 el_to_domain_index BLOB DEFAULT '' NOT NULL,
303 el_to_path BLOB DEFAULT NULL
305 CREATE INDEX el_from ON /*_*/externallinks (el_from);
306 CREATE INDEX el_to_domain_index_to_path ON /*_*/externallinks (el_to_domain_index, el_to_path);
307 CREATE TABLE /*_*/ip_changes (
308 ipc_rev_id INTEGER UNSIGNED DEFAULT 0 NOT NULL,
309 ipc_rev_timestamp BLOB NOT NULL,
310 ipc_hex BLOB DEFAULT '' NOT NULL,
311 PRIMARY KEY(ipc_rev_id)
313 CREATE INDEX ipc_rev_timestamp ON /*_*/ip_changes (ipc_rev_timestamp);
314 CREATE INDEX ipc_hex_time ON /*_*/ip_changes (ipc_hex, ipc_rev_timestamp);
315 CREATE TABLE /*_*/page_props (
316 pp_page INTEGER UNSIGNED NOT NULL,
317 pp_propname BLOB NOT NULL,
318 pp_value BLOB NOT NULL,
319 pp_sortkey DOUBLE PRECISION DEFAULT NULL,
320 PRIMARY KEY(pp_page, pp_propname)
322 CREATE UNIQUE INDEX pp_propname_page ON /*_*/page_props (pp_propname, pp_page);
323 CREATE UNIQUE INDEX pp_propname_sortkey_page ON /*_*/page_props (pp_propname, pp_sortkey, pp_page);
324 CREATE TABLE /*_*/job (
325 job_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
326 job_cmd BLOB DEFAULT '' NOT NULL, job_namespace INTEGER NOT NULL,
327 job_title BLOB NOT NULL, job_timestamp BLOB DEFAULT NULL,
328 job_params BLOB NOT NULL, job_random INTEGER UNSIGNED DEFAULT 0 NOT NULL,
329 job_attempts INTEGER UNSIGNED DEFAULT 0 NOT NULL,
330 job_token BLOB DEFAULT '' NOT NULL,
331 job_token_timestamp BLOB DEFAULT NULL,
332 job_sha1 BLOB DEFAULT '' NOT NULL
334 CREATE INDEX job_sha1 ON /*_*/job (job_sha1);
335 CREATE INDEX job_cmd_token ON /*_*/job (job_cmd, job_token, job_random);
336 CREATE INDEX job_cmd_token_id ON /*_*/job (job_cmd, job_token, job_id);
337 CREATE INDEX job_cmd ON /*_*/job (
338 job_cmd, job_namespace, job_title,
341 CREATE INDEX job_timestamp ON /*_*/job (job_timestamp);
342 CREATE TABLE /*_*/slot_roles (
343 role_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
344 role_name BLOB NOT NULL
346 CREATE UNIQUE INDEX role_name ON /*_*/slot_roles (role_name);
347 CREATE TABLE /*_*/content_models (
348 model_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
349 model_name BLOB NOT NULL
351 CREATE UNIQUE INDEX model_name ON /*_*/content_models (model_name);
352 CREATE TABLE /*_*/categorylinks (
353 cl_from INTEGER UNSIGNED DEFAULT 0 NOT NULL,
354 cl_to BLOB DEFAULT '' NOT NULL,
355 cl_sortkey BLOB DEFAULT '' NOT NULL,
356 cl_sortkey_prefix BLOB DEFAULT '' NOT NULL,
357 cl_timestamp DATETIME NOT NULL,
358 cl_collation BLOB DEFAULT '' NOT NULL,
359 cl_type TEXT DEFAULT 'page' NOT NULL,
360 PRIMARY KEY(cl_from, cl_to)
362 CREATE INDEX cl_sortkey ON /*_*/categorylinks (
363 cl_to, cl_type, cl_sortkey, cl_from
365 CREATE INDEX cl_timestamp ON /*_*/categorylinks (cl_to, cl_timestamp);
366 CREATE INDEX cl_collation_ext ON /*_*/categorylinks (
367 cl_collation, cl_to, cl_type, cl_from
369 CREATE TABLE /*_*/logging (
370 log_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
371 log_type BLOB DEFAULT '' NOT NULL, log_action BLOB DEFAULT '' NOT NULL,
372 log_timestamp BLOB DEFAULT '19700101000000' NOT NULL,
373 log_actor BIGINT UNSIGNED NOT NULL,
374 log_namespace INTEGER DEFAULT 0 NOT NULL,
375 log_title BLOB DEFAULT '' NOT NULL,
376 log_page INTEGER UNSIGNED DEFAULT NULL,
377 log_comment_id BIGINT UNSIGNED NOT NULL,
378 log_params BLOB NOT NULL, log_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL
380 CREATE INDEX log_type_time ON /*_*/logging (log_type, log_timestamp);
381 CREATE INDEX log_actor_time ON /*_*/logging (log_actor, log_timestamp);
382 CREATE INDEX log_page_time ON /*_*/logging (
383 log_namespace, log_title, log_timestamp
385 CREATE INDEX log_times ON /*_*/logging (log_timestamp);
386 CREATE INDEX log_actor_type_time ON /*_*/logging (
387 log_actor, log_type, log_timestamp
389 CREATE INDEX log_page_id_time ON /*_*/logging (log_page, log_timestamp);
390 CREATE INDEX log_type_action ON /*_*/logging (
391 log_type, log_action, log_timestamp
393 CREATE TABLE /*_*/uploadstash (
394 us_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
395 us_user INTEGER UNSIGNED NOT NULL,
396 us_key VARCHAR(255) NOT NULL,
397 us_orig_path VARCHAR(255) NOT NULL,
398 us_path VARCHAR(255) NOT NULL,
399 us_source_type VARCHAR(50) DEFAULT NULL,
400 us_timestamp BLOB NOT NULL,
401 us_status VARCHAR(50) NOT NULL,
402 us_chunk_inx INTEGER UNSIGNED DEFAULT NULL,
403 us_props BLOB DEFAULT NULL,
404 us_size BIGINT UNSIGNED NOT NULL,
405 us_sha1 VARCHAR(31) NOT NULL,
406 us_mime VARCHAR(255) DEFAULT NULL,
407 us_media_type TEXT DEFAULT NULL,
408 us_image_width INTEGER UNSIGNED DEFAULT NULL,
409 us_image_height INTEGER UNSIGNED DEFAULT NULL,
410 us_image_bits SMALLINT UNSIGNED DEFAULT NULL
412 CREATE INDEX us_user ON /*_*/uploadstash (us_user);
413 CREATE UNIQUE INDEX us_key ON /*_*/uploadstash (us_key);
414 CREATE INDEX us_timestamp ON /*_*/uploadstash (us_timestamp);
415 CREATE TABLE /*_*/filearchive (
416 fa_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
417 fa_name BLOB DEFAULT '' NOT NULL, fa_archive_name BLOB DEFAULT '',
418 fa_storage_group BLOB DEFAULT NULL,
419 fa_storage_key BLOB DEFAULT '', fa_deleted_user INTEGER DEFAULT NULL,
420 fa_deleted_timestamp BLOB DEFAULT NULL,
421 fa_deleted_reason_id BIGINT UNSIGNED NOT NULL,
422 fa_size BIGINT UNSIGNED DEFAULT 0,
423 fa_width INTEGER DEFAULT 0, fa_height INTEGER DEFAULT 0,
424 fa_metadata BLOB DEFAULT NULL, fa_bits INTEGER DEFAULT 0,
425 fa_media_type TEXT DEFAULT NULL, fa_major_mime TEXT DEFAULT 'unknown',
426 fa_minor_mime BLOB DEFAULT 'unknown',
427 fa_description_id BIGINT UNSIGNED NOT NULL,
428 fa_actor BIGINT UNSIGNED NOT NULL,
429 fa_timestamp BLOB DEFAULT NULL, fa_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
430 fa_sha1 BLOB DEFAULT '' NOT NULL
432 CREATE INDEX fa_name ON /*_*/filearchive (fa_name, fa_timestamp);
433 CREATE INDEX fa_storage_group ON /*_*/filearchive (
434 fa_storage_group, fa_storage_key
436 CREATE INDEX fa_deleted_timestamp ON /*_*/filearchive (fa_deleted_timestamp);
437 CREATE INDEX fa_actor_timestamp ON /*_*/filearchive (fa_actor, fa_timestamp);
438 CREATE INDEX fa_sha1 ON /*_*/filearchive (fa_sha1);
439 CREATE TABLE /*_*/text (
440 old_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
441 old_text BLOB NOT NULL, old_flags BLOB NOT NULL
443 CREATE TABLE /*_*/oldimage (
444 oi_name BLOB DEFAULT '' NOT NULL, oi_archive_name BLOB DEFAULT '' NOT NULL,
445 oi_size BIGINT UNSIGNED DEFAULT 0 NOT NULL,
446 oi_width INTEGER DEFAULT 0 NOT NULL,
447 oi_height INTEGER DEFAULT 0 NOT NULL,
448 oi_bits INTEGER DEFAULT 0 NOT NULL,
449 oi_description_id BIGINT UNSIGNED NOT NULL,
450 oi_actor BIGINT UNSIGNED NOT NULL,
451 oi_timestamp BLOB NOT NULL, oi_metadata BLOB NOT NULL,
452 oi_media_type TEXT DEFAULT NULL, oi_major_mime TEXT DEFAULT 'unknown' NOT NULL,
453 oi_minor_mime BLOB DEFAULT 'unknown' NOT NULL,
454 oi_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
455 oi_sha1 BLOB DEFAULT '' NOT NULL
457 CREATE INDEX oi_actor_timestamp ON /*_*/oldimage (oi_actor, oi_timestamp);
458 CREATE INDEX oi_name_timestamp ON /*_*/oldimage (oi_name, oi_timestamp);
459 CREATE INDEX oi_name_archive_name ON /*_*/oldimage (oi_name, oi_archive_name);
460 CREATE INDEX oi_sha1 ON /*_*/oldimage (oi_sha1);
461 CREATE INDEX oi_timestamp ON /*_*/oldimage (oi_timestamp);
462 CREATE TABLE /*_*/objectcache (
463 keyname BLOB DEFAULT '' NOT NULL,
464 value BLOB DEFAULT NULL,
465 exptime BLOB NOT NULL,
466 modtoken VARCHAR(17) DEFAULT '00000000000000000' NOT NULL,
467 flags INTEGER UNSIGNED DEFAULT NULL,
470 CREATE INDEX exptime ON /*_*/objectcache (exptime);
471 CREATE TABLE /*_*/ipblocks (
472 ipb_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
473 ipb_address BLOB NOT NULL, ipb_user INTEGER UNSIGNED DEFAULT 0 NOT NULL,
474 ipb_by_actor BIGINT UNSIGNED NOT NULL,
475 ipb_reason_id BIGINT UNSIGNED NOT NULL,
476 ipb_timestamp BLOB NOT NULL, ipb_auto SMALLINT DEFAULT 0 NOT NULL,
477 ipb_anon_only SMALLINT DEFAULT 0 NOT NULL,
478 ipb_create_account SMALLINT DEFAULT 1 NOT NULL,
479 ipb_enable_autoblock SMALLINT DEFAULT 1 NOT NULL,
480 ipb_expiry BLOB NOT NULL, ipb_range_start BLOB NOT NULL,
481 ipb_range_end BLOB NOT NULL, ipb_deleted SMALLINT DEFAULT 0 NOT NULL,
482 ipb_block_email SMALLINT DEFAULT 0 NOT NULL,
483 ipb_allow_usertalk SMALLINT DEFAULT 0 NOT NULL,
484 ipb_parent_block_id INTEGER UNSIGNED DEFAULT NULL,
485 ipb_sitewide SMALLINT DEFAULT 1 NOT NULL
487 CREATE UNIQUE INDEX ipb_address_unique ON /*_*/ipblocks (ipb_address, ipb_user, ipb_auto);
488 CREATE INDEX ipb_user ON /*_*/ipblocks (ipb_user);
489 CREATE INDEX ipb_range ON /*_*/ipblocks (ipb_range_start, ipb_range_end);
490 CREATE INDEX ipb_timestamp ON /*_*/ipblocks (ipb_timestamp);
491 CREATE INDEX ipb_expiry ON /*_*/ipblocks (ipb_expiry);
492 CREATE INDEX ipb_parent_block_id ON /*_*/ipblocks (ipb_parent_block_id);
493 CREATE TABLE /*_*/image (
494 img_name BLOB DEFAULT '' NOT NULL,
495 img_size BIGINT UNSIGNED DEFAULT 0 NOT NULL,
496 img_width INTEGER DEFAULT 0 NOT NULL,
497 img_height INTEGER DEFAULT 0 NOT NULL,
498 img_metadata BLOB NOT NULL,
499 img_bits INTEGER DEFAULT 0 NOT NULL,
500 img_media_type TEXT DEFAULT NULL,
501 img_major_mime TEXT DEFAULT 'unknown' NOT NULL,
502 img_minor_mime BLOB DEFAULT 'unknown' NOT NULL,
503 img_description_id BIGINT UNSIGNED NOT NULL,
504 img_actor BIGINT UNSIGNED NOT NULL,
505 img_timestamp BLOB NOT NULL,
506 img_sha1 BLOB DEFAULT '' NOT NULL,
507 PRIMARY KEY(img_name)
509 CREATE INDEX img_actor_timestamp ON /*_*/image (img_actor, img_timestamp);
510 CREATE INDEX img_size ON /*_*/image (img_size);
511 CREATE INDEX img_timestamp ON /*_*/image (img_timestamp);
512 CREATE INDEX img_sha1 ON /*_*/image (img_sha1);
513 CREATE INDEX img_media_mime ON /*_*/image (
514 img_media_type, img_major_mime, img_minor_mime
516 CREATE TABLE /*_*/recentchanges (
517 rc_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
518 rc_timestamp BLOB NOT NULL, rc_actor BIGINT UNSIGNED NOT NULL,
519 rc_namespace INTEGER DEFAULT 0 NOT NULL,
520 rc_title BLOB DEFAULT '' NOT NULL, rc_comment_id BIGINT UNSIGNED NOT NULL,
521 rc_minor SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
522 rc_bot SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
523 rc_new SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
524 rc_cur_id INTEGER UNSIGNED DEFAULT 0 NOT NULL,
525 rc_this_oldid INTEGER UNSIGNED DEFAULT 0 NOT NULL,
526 rc_last_oldid INTEGER UNSIGNED DEFAULT 0 NOT NULL,
527 rc_type SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
528 rc_source BLOB DEFAULT '' NOT NULL,
529 rc_patrolled SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
530 rc_ip BLOB DEFAULT '' NOT NULL, rc_old_len INTEGER DEFAULT NULL,
531 rc_new_len INTEGER DEFAULT NULL, rc_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
532 rc_logid INTEGER UNSIGNED DEFAULT 0 NOT NULL,
533 rc_log_type BLOB DEFAULT NULL, rc_log_action BLOB DEFAULT NULL,
534 rc_params BLOB DEFAULT NULL
536 CREATE INDEX rc_timestamp ON /*_*/recentchanges (rc_timestamp);
537 CREATE INDEX rc_namespace_title_timestamp ON /*_*/recentchanges (
538 rc_namespace, rc_title, rc_timestamp
540 CREATE INDEX rc_cur_id ON /*_*/recentchanges (rc_cur_id);
541 CREATE INDEX rc_new_name_timestamp ON /*_*/recentchanges (
542 rc_new, rc_namespace, rc_timestamp
544 CREATE INDEX rc_ip ON /*_*/recentchanges (rc_ip);
545 CREATE INDEX rc_ns_actor ON /*_*/recentchanges (rc_namespace, rc_actor);
546 CREATE INDEX rc_actor ON /*_*/recentchanges (rc_actor, rc_timestamp);
547 CREATE INDEX rc_name_type_patrolled_timestamp ON /*_*/recentchanges (
548 rc_namespace, rc_type, rc_patrolled,
551 CREATE INDEX rc_this_oldid ON /*_*/recentchanges (rc_this_oldid);
552 CREATE TABLE /*_*/archive (
553 ar_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
554 ar_namespace INTEGER DEFAULT 0 NOT NULL,
555 ar_title BLOB DEFAULT '' NOT NULL, ar_comment_id BIGINT UNSIGNED NOT NULL,
556 ar_actor BIGINT UNSIGNED NOT NULL,
557 ar_timestamp BLOB NOT NULL, ar_minor_edit SMALLINT DEFAULT 0 NOT NULL,
558 ar_rev_id INTEGER UNSIGNED NOT NULL,
559 ar_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
560 ar_len INTEGER UNSIGNED DEFAULT NULL,
561 ar_page_id INTEGER UNSIGNED DEFAULT NULL,
562 ar_parent_id INTEGER UNSIGNED DEFAULT NULL,
563 ar_sha1 BLOB DEFAULT '' NOT NULL
565 CREATE INDEX ar_name_title_timestamp ON /*_*/archive (
566 ar_namespace, ar_title, ar_timestamp
568 CREATE INDEX ar_actor_timestamp ON /*_*/archive (ar_actor, ar_timestamp);
569 CREATE UNIQUE INDEX ar_revid_uniq ON /*_*/archive (ar_rev_id);
570 CREATE TABLE /*_*/page (
571 page_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
572 page_namespace INTEGER NOT NULL, page_title BLOB NOT NULL,
573 page_is_redirect SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
574 page_is_new SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
575 page_random DOUBLE PRECISION NOT NULL,
576 page_touched BLOB NOT NULL, page_links_updated BLOB DEFAULT NULL,
577 page_latest INTEGER UNSIGNED NOT NULL,
578 page_len INTEGER UNSIGNED NOT NULL,
579 page_content_model BLOB DEFAULT NULL,
580 page_lang BLOB DEFAULT NULL
582 CREATE UNIQUE INDEX page_name_title ON /*_*/page (page_namespace, page_title);
583 CREATE INDEX page_random ON /*_*/page (page_random);
584 CREATE INDEX page_len ON /*_*/page (page_len);
585 CREATE INDEX page_redirect_namespace_len ON /*_*/page (
586 page_is_redirect, page_namespace,
589 CREATE TABLE /*_*/user (
590 user_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
591 user_name BLOB DEFAULT '' NOT NULL,
592 user_real_name BLOB DEFAULT '' NOT NULL,
593 user_password BLOB NOT NULL, user_newpassword BLOB NOT NULL,
594 user_newpass_time BLOB DEFAULT NULL,
595 user_email CLOB NOT NULL, user_touched BLOB NOT NULL,
596 user_token BLOB DEFAULT '' NOT NULL,
597 user_email_authenticated BLOB DEFAULT NULL,
598 user_email_token BLOB DEFAULT NULL,
599 user_email_token_expires BLOB DEFAULT NULL,
600 user_registration BLOB DEFAULT NULL,
601 user_editcount INTEGER UNSIGNED DEFAULT NULL,
602 user_password_expires BLOB DEFAULT NULL,
603 user_is_temp SMALLINT DEFAULT 0 NOT NULL
605 CREATE UNIQUE INDEX user_name ON /*_*/user (user_name);
606 CREATE INDEX user_email_token ON /*_*/user (user_email_token);
607 CREATE INDEX user_email ON /*_*/user (user_email);
608 CREATE TABLE /*_*/user_autocreate_serial (
609 uas_shard INTEGER UNSIGNED NOT NULL,
610 uas_value INTEGER UNSIGNED NOT NULL,
611 PRIMARY KEY(uas_shard)
613 CREATE TABLE /*_*/revision (
614 rev_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
615 rev_page INTEGER UNSIGNED NOT NULL,
616 rev_comment_id BIGINT UNSIGNED DEFAULT 0 NOT NULL,
617 rev_actor BIGINT UNSIGNED DEFAULT 0 NOT NULL,
618 rev_timestamp BLOB NOT NULL, rev_minor_edit SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
619 rev_deleted SMALLINT UNSIGNED DEFAULT 0 NOT NULL,
620 rev_len INTEGER UNSIGNED DEFAULT NULL,
621 rev_parent_id INTEGER UNSIGNED DEFAULT NULL,
622 rev_sha1 BLOB DEFAULT '' NOT NULL
624 CREATE INDEX rev_timestamp ON /*_*/revision (rev_timestamp);
625 CREATE INDEX rev_page_timestamp ON /*_*/revision (rev_page, rev_timestamp);
626 CREATE INDEX rev_actor_timestamp ON /*_*/revision (rev_actor, rev_timestamp, rev_id);
627 CREATE INDEX rev_page_actor_timestamp ON /*_*/revision (
628 rev_page, rev_actor, rev_timestamp
630 CREATE TABLE /*_*/searchindex (
631 si_page INTEGER UNSIGNED NOT NULL,
632 si_title VARCHAR(255) DEFAULT '' NOT NULL,
633 si_text CLOB NOT NULL
635 CREATE UNIQUE INDEX si_page ON /*_*/searchindex (si_page);
636 CREATE INDEX si_title ON /*_*/searchindex (si_title);
637 CREATE INDEX si_text ON /*_*/searchindex (si_text);
638 CREATE TABLE /*_*/linktarget (
639 lt_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
640 lt_namespace INTEGER NOT NULL, lt_title BLOB NOT NULL
642 CREATE UNIQUE INDEX lt_namespace_title ON /*_*/linktarget (lt_namespace, lt_title);