1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
-- Table for tracking blobs prior to recompression or similar maintenance operations
CREATE TABLE /*$wgDBprefix*/blob_tracking (
-- page.page_id
-- This may be zero for orphan or deleted text
-- Note that this is for compression grouping only -- it doesn't need to be
-- accurate at the time recompressTracked is run. Operations such as a
-- delete/undelete cycle may make it inaccurate.
bt_page integer not null,
-- revision.rev_id
-- This may be zero for orphan or deleted text
-- Like bt_page, it does not need to be accurate when recompressTracked is run.
bt_rev_id integer not null,
-- text.old_id
bt_text_id integer not null,
-- The ES cluster
bt_cluster varbinary(255),
-- The ES blob ID
bt_blob_id integer not null,
-- The CGZ content hash, or null
bt_cgz_hash varbinary(255),
-- The URL this blob is to be moved to
bt_new_url varbinary(255),
-- True if the text table has been updated to point to bt_new_url
bt_moved bool not null default 0,
-- Primary key
-- Note that text_id is not unique due to null edits (protection, move)
-- moveTextRow(), commit(), trackOrphanText()
PRIMARY KEY (bt_text_id, bt_rev_id),
-- Sort by page for easy CGZ recompression
-- doAllPages(), doAllOrphans(), doPage(), finishIncompleteMoves()
KEY (bt_moved, bt_page, bt_text_id),
-- Key for determining the revisions using a given blob
-- Not used by any scripts yet
KEY (bt_cluster, bt_blob_id, bt_cgz_hash)
) /*$wgDBTableOptions*/;
-- Tracking table for blob rows that aren't tracked by the text table
CREATE TABLE /*$wgDBprefix*/blob_orphans (
bo_cluster varbinary(255),
bo_blob_id integer not null,
PRIMARY KEY (bo_cluster, bo_blob_id)
) /*$wgDBTableOptions*/;
|