summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/AbuseFilter/abusefilter.tables.pg.sql
blob: 45d68233cd5ef489c7db54829660c9fec11ca2a1 (plain)
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
-- SQL tables for AbuseFilter extension (Postgres version)

-- Note: This does not currently work, as the extension generates queries
-- like this: SELECT af_hidden FROM abuse_filter WHERE af_id = 'new' LIMIT 1
-- Which makes no sense as af_id is a BIGINT in the MySQL version of the schema

BEGIN;

CREATE SEQUENCE abuse_filter_af_id_seq;
CREATE TABLE abuse_filter (
    af_id               INTEGER      NOT NULL PRIMARY KEY DEFAULT nextval('abuse_filter_af_id_seq'),
    af_pattern          TEXT         NOT NULL,
    af_user             INTEGER      NOT NULL,
    af_user_text        TEXT         NOT NULL,
    af_timestamp        TIMESTAMPTZ  NOT NULL,
    af_enabled          SMALLINT     NOT NULL             DEFAULT 1,
    af_comments         TEXT,
    af_public_comments  TEXT,
    af_hidden           SMALLINT     NOT NULL             DEFAULT 0,
    af_hit_count        INTEGER      NOT NULL             DEFAULT 0,
    af_throttled        SMALLINT     NOT NULL             DEFAULT 0,
    af_deleted          SMALLINT     NOT NULL             DEFAULT 0,
    af_actions          TEXT         NOT NULL             DEFAULT '',
    af_global           SMALLINT     NOT NULL             DEFAULT 0,
    af_group            TEXT         NOT NULL             DEFAULT 'default'
);
CREATE INDEX abuse_filter_user ON abuse_filter(af_user);
CREATE INDEX abuse_filter_group_enabled_id ON abuse_filter(af_group,af_enabled,af_id);


CREATE TABLE abuse_filter_action (
    afa_filter       INTEGER  NOT NULL,
    afa_consequence  TEXT     NOT NULL,
    afa_parameters   TEXT     NOT NULL,
    PRIMARY KEY (afa_filter,afa_consequence)
);
CREATE INDEX abuse_filter_action_consequence ON abuse_filter_action(afa_consequence);


CREATE SEQUENCE abuse_filter_log_afl_id_seq;
CREATE TABLE abuse_filter_log (
    afl_id         INTEGER      NOT NULL PRIMARY KEY DEFAULT nextval('abuse_filter_log_afl_id_seq'),
    afl_filter     TEXT         NOT NULL,
    afl_user       INTEGER      NOT NULL,
    afl_user_text  TEXT         NOT NULL,
    afl_ip         TEXT         NOT NULL,
    afl_action     TEXT         NOT NULL,
    afl_actions    TEXT         NOT NULL,
    afl_var_dump   TEXT         NOT NULL,
    afl_timestamp  TIMESTAMPTZ  NOT NULL,
    afl_namespace  INTEGER      NOT NULL,
    afl_title      TEXT         NOT NULL,
	afl_wiki       TEXT             NULL,
	afl_deleted    SMALLINT         NULL
);
CREATE INDEX abuse_filter_log_filter    ON abuse_filter_log(afl_filter);
CREATE INDEX abuse_filter_log_ip        ON abuse_filter_log(afl_ip);
CREATE INDEX abuse_filter_log_timestamp ON abuse_filter_log(afl_timestamp);
CREATE INDEX abuse_filter_log_title     ON abuse_filter_log(afl_namespace, afl_title);
CREATE INDEX abuse_filter_log_user      ON abuse_filter_log(afl_user);
CREATE INDEX abuse_filter_log_user_text ON abuse_filter_log(afl_user_text);
CREATE INDEX abuse_filter_log_wiki      ON abuse_filter_log(afl_wiki);

CREATE SEQUENCE abuse_filter_history_afh_id_seq;
CREATE TABLE abuse_filter_history (
    afh_id               INTEGER      NOT NULL PRIMARY KEY DEFAULT nextval('abuse_filter_history_afh_id_seq'),
    afh_filter           INTEGER      NOT NULL,
    afh_user             INTEGER      NOT NULL,
    afh_user_text        TEXT         NOT NULL,
    afh_timestamp        TIMESTAMPTZ  NOT NULL,
    afh_pattern          TEXT         NOT NULL,
    afh_comments         TEXT         NOT NULL,
    afh_flags            TEXT         NOT NULL,
    afh_public_comments  TEXT         NOT NULL,
    afh_actions          TEXT         NOT NULL,
    afh_deleted          SMALLINT     NOT NULL             DEFAULT 0,
    afh_changed_fields   TEXT         NOT NULL             DEFAULT '',
    afh_group            TEXT         NULL
);
CREATE INDEX abuse_filter_history_filter    ON abuse_filter_history(afh_filter);
CREATE INDEX abuse_filter_history_user      ON abuse_filter_history(afh_user);
CREATE INDEX abuse_filter_history_user_text ON abuse_filter_history(afh_user_text);
CREATE INDEX abuse_filter_history_timestamp ON abuse_filter_history(afh_timestamp);

COMMIT;