xref: /plugin/statistics/db/update0001.sql (revision c1d8dc74e59605c1d1c7be707e076b5f01f030cc)
1*c1d8dc74SAndreas GohrCREATE TABLE `access`
2*c1d8dc74SAndreas Gohr(
3*c1d8dc74SAndreas Gohr    `id`       INTEGER PRIMARY KEY,
4*c1d8dc74SAndreas Gohr    `dt`       TEXT    NOT NULL DEFAULT CURRENT_TIMESTAMP,
5*c1d8dc74SAndreas Gohr    `page`     TEXT    NOT NULL,
6*c1d8dc74SAndreas Gohr    `ip`       TEXT    NOT NULL,
7*c1d8dc74SAndreas Gohr    `ua`       TEXT    NOT NULL,
8*c1d8dc74SAndreas Gohr    `ua_info`  TEXT    NOT NULL,
9*c1d8dc74SAndreas Gohr    `ua_type`  TEXT    NOT NULL,
10*c1d8dc74SAndreas Gohr    `ua_ver`   TEXT    NOT NULL,
11*c1d8dc74SAndreas Gohr    `os`       TEXT    NOT NULL,
12*c1d8dc74SAndreas Gohr    `ref_md5`  TEXT    NOT NULL,
13*c1d8dc74SAndreas Gohr    `ref_type` TEXT    NOT NULL,
14*c1d8dc74SAndreas Gohr    `ref`      TEXT    NOT NULL,
15*c1d8dc74SAndreas Gohr    `screen_x` INTEGER NOT NULL,
16*c1d8dc74SAndreas Gohr    `screen_y` INTEGER NOT NULL,
17*c1d8dc74SAndreas Gohr    `view_x`   INTEGER NOT NULL,
18*c1d8dc74SAndreas Gohr    `view_y`   INTEGER NOT NULL,
19*c1d8dc74SAndreas Gohr    `user`     TEXT    NOT NULL,
20*c1d8dc74SAndreas Gohr    `session`  TEXT    NOT NULL,
21*c1d8dc74SAndreas Gohr    `js`       INTEGER NOT NULL DEFAULT 1,
22*c1d8dc74SAndreas Gohr    `uid`      TEXT    NOT NULL DEFAULT ''
23*c1d8dc74SAndreas Gohr);
24*c1d8dc74SAndreas GohrCREATE INDEX `idx_access_ref_type` ON `access` (`ref_type`);
25*c1d8dc74SAndreas GohrCREATE INDEX `idx_access_page` ON `access` (`page`);
26*c1d8dc74SAndreas GohrCREATE INDEX `idx_access_ref_md5` ON `access` (`ref_md5`);
27*c1d8dc74SAndreas GohrCREATE INDEX `idx_access_dt` ON `access` (`dt`);
28*c1d8dc74SAndreas GohrCREATE INDEX `idx_access_ua_type` ON `access` (`ua_type`);
29*c1d8dc74SAndreas Gohr
30*c1d8dc74SAndreas Gohr
31*c1d8dc74SAndreas GohrCREATE TABLE `iplocation`
32*c1d8dc74SAndreas Gohr(
33*c1d8dc74SAndreas Gohr    `ip`      TEXT PRIMARY KEY,
34*c1d8dc74SAndreas Gohr    `code`    TEXT NOT NULL,
35*c1d8dc74SAndreas Gohr    `country` TEXT NOT NULL,
36*c1d8dc74SAndreas Gohr    `city`    TEXT NOT NULL,
37*c1d8dc74SAndreas Gohr    `host`    TEXT NOT NULL,
38*c1d8dc74SAndreas Gohr    `lastupd` TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
39*c1d8dc74SAndreas Gohr);
40*c1d8dc74SAndreas GohrCREATE INDEX `idx_iplocation_code` ON `iplocation` (`code`);
41*c1d8dc74SAndreas Gohr
42*c1d8dc74SAndreas GohrCREATE TABLE `outlinks`
43*c1d8dc74SAndreas Gohr(
44*c1d8dc74SAndreas Gohr    `id`       INTEGER PRIMARY KEY,
45*c1d8dc74SAndreas Gohr    `dt`       TEXT NOT NULL,
46*c1d8dc74SAndreas Gohr    `session`  TEXT NOT NULL,
47*c1d8dc74SAndreas Gohr    `link_md5` TEXT NOT NULL,
48*c1d8dc74SAndreas Gohr    `link`     TEXT NOT NULL,
49*c1d8dc74SAndreas Gohr    `page`     TEXT NOT NULL DEFAULT ''
50*c1d8dc74SAndreas Gohr);
51*c1d8dc74SAndreas GohrCREATE INDEX `idx_outlinks_link_md5` ON `outlinks` (`link_md5`);
52*c1d8dc74SAndreas GohrCREATE INDEX `idx_outlinks_dt` ON `outlinks` (`dt`);
53*c1d8dc74SAndreas Gohr
54*c1d8dc74SAndreas Gohr
55*c1d8dc74SAndreas GohrCREATE TABLE `search`
56*c1d8dc74SAndreas Gohr(
57*c1d8dc74SAndreas Gohr    `id`     INTEGER PRIMARY KEY,
58*c1d8dc74SAndreas Gohr    `dt`     TEXT NOT NULL,
59*c1d8dc74SAndreas Gohr    `page`   TEXT NOT NULL,
60*c1d8dc74SAndreas Gohr    `query`  TEXT NOT NULL,
61*c1d8dc74SAndreas Gohr    `engine` TEXT NOT NULL
62*c1d8dc74SAndreas Gohr);
63*c1d8dc74SAndreas GohrCREATE INDEX `idx_search_engine` ON `search` (`engine`);
64*c1d8dc74SAndreas GohrCREATE INDEX `idx_search_dt` ON `search` (`dt`);
65*c1d8dc74SAndreas Gohr
66*c1d8dc74SAndreas GohrCREATE TABLE `searchwords`
67*c1d8dc74SAndreas Gohr(
68*c1d8dc74SAndreas Gohr    `sid`  INTEGER NOT NULL,
69*c1d8dc74SAndreas Gohr    `word` TEXT    NOT NULL,
70*c1d8dc74SAndreas Gohr    PRIMARY KEY (`sid`, `word`)
71*c1d8dc74SAndreas Gohr);
72*c1d8dc74SAndreas Gohr
73*c1d8dc74SAndreas GohrCREATE TABLE `refseen`
74*c1d8dc74SAndreas Gohr(
75*c1d8dc74SAndreas Gohr    `ref_md5` TEXT PRIMARY KEY,
76*c1d8dc74SAndreas Gohr    `dt`      TEXT NOT NULL
77*c1d8dc74SAndreas Gohr);
78*c1d8dc74SAndreas GohrCREATE INDEX `idx_refseen_dt` ON `refseen` (`dt`);
79*c1d8dc74SAndreas Gohr
80*c1d8dc74SAndreas GohrCREATE TABLE `edits`
81*c1d8dc74SAndreas Gohr(
82*c1d8dc74SAndreas Gohr    `id`      INTEGER PRIMARY KEY,
83*c1d8dc74SAndreas Gohr    `dt`      TEXT NOT NULL,
84*c1d8dc74SAndreas Gohr    `ip`      TEXT NOT NULL,
85*c1d8dc74SAndreas Gohr    `user`    TEXT NOT NULL,
86*c1d8dc74SAndreas Gohr    `session` TEXT NOT NULL,
87*c1d8dc74SAndreas Gohr    `uid`     TEXT NOT NULL,
88*c1d8dc74SAndreas Gohr    `page`    TEXT NOT NULL,
89*c1d8dc74SAndreas Gohr    `type`    TEXT NOT NULL
90*c1d8dc74SAndreas Gohr);
91*c1d8dc74SAndreas GohrCREATE INDEX `idx_edits_dt` ON `edits` (`dt`);
92*c1d8dc74SAndreas GohrCREATE INDEX `idx_edits_type` ON `edits` (`type`);
93*c1d8dc74SAndreas Gohr
94*c1d8dc74SAndreas Gohr
95*c1d8dc74SAndreas GohrCREATE TABLE `session`
96*c1d8dc74SAndreas Gohr(
97*c1d8dc74SAndreas Gohr    `session` TEXT PRIMARY KEY,
98*c1d8dc74SAndreas Gohr    `dt`      TEXT    NOT NULL,
99*c1d8dc74SAndreas Gohr    `end`     TEXT    NOT NULL,
100*c1d8dc74SAndreas Gohr    `views`   INTEGER NOT NULL,
101*c1d8dc74SAndreas Gohr    `uid`     TEXT    NOT NULL
102*c1d8dc74SAndreas Gohr);
103*c1d8dc74SAndreas GohrCREATE INDEX `idx_session_dt` ON `session` (`dt`);
104*c1d8dc74SAndreas GohrCREATE INDEX `idx_session_views` ON `session` (`views`);
105*c1d8dc74SAndreas GohrCREATE INDEX `idx_session_uid` ON `session` (`uid`);
106*c1d8dc74SAndreas Gohr
107*c1d8dc74SAndreas Gohr
108*c1d8dc74SAndreas GohrCREATE TABLE `logins`
109*c1d8dc74SAndreas Gohr(
110*c1d8dc74SAndreas Gohr    `id`      INTEGER PRIMARY KEY,
111*c1d8dc74SAndreas Gohr    `dt`      TEXT NOT NULL,
112*c1d8dc74SAndreas Gohr    `ip`      TEXT NOT NULL,
113*c1d8dc74SAndreas Gohr    `user`    TEXT NOT NULL,
114*c1d8dc74SAndreas Gohr    `session` TEXT NOT NULL,
115*c1d8dc74SAndreas Gohr    `uid`     TEXT NOT NULL,
116*c1d8dc74SAndreas Gohr    `type`    TEXT NOT NULL
117*c1d8dc74SAndreas Gohr);
118*c1d8dc74SAndreas GohrCREATE INDEX `idx_logins_dt` ON `logins` (`dt`);
119*c1d8dc74SAndreas GohrCREATE INDEX `idx_logins_type` ON `logins` (`type`);
120*c1d8dc74SAndreas Gohr
121*c1d8dc74SAndreas Gohr
122*c1d8dc74SAndreas GohrCREATE TABLE `lastseen`
123*c1d8dc74SAndreas Gohr(
124*c1d8dc74SAndreas Gohr    `user` TEXT PRIMARY KEY,
125*c1d8dc74SAndreas Gohr    `dt`   TEXT NOT NULL
126*c1d8dc74SAndreas Gohr);
127*c1d8dc74SAndreas Gohr
128*c1d8dc74SAndreas GohrCREATE TABLE `media`
129*c1d8dc74SAndreas Gohr(
130*c1d8dc74SAndreas Gohr    `id`      INTEGER PRIMARY KEY,
131*c1d8dc74SAndreas Gohr    `dt`      TEXT    NOT NULL,
132*c1d8dc74SAndreas Gohr    `media`   TEXT    NOT NULL,
133*c1d8dc74SAndreas Gohr    `ip`      TEXT,
134*c1d8dc74SAndreas Gohr    `ua`      TEXT    NOT NULL,
135*c1d8dc74SAndreas Gohr    `ua_info` TEXT    NOT NULL,
136*c1d8dc74SAndreas Gohr    `ua_type` TEXT    NOT NULL,
137*c1d8dc74SAndreas Gohr    `ua_ver`  TEXT    NOT NULL,
138*c1d8dc74SAndreas Gohr    `os`      TEXT    NOT NULL,
139*c1d8dc74SAndreas Gohr    `user`    TEXT    NOT NULL,
140*c1d8dc74SAndreas Gohr    `session` TEXT    NOT NULL,
141*c1d8dc74SAndreas Gohr    `uid`     TEXT    NOT NULL,
142*c1d8dc74SAndreas Gohr    `size`    INTEGER NOT NULL,
143*c1d8dc74SAndreas Gohr    `mime1`   TEXT    NOT NULL,
144*c1d8dc74SAndreas Gohr    `mime2`   TEXT    NOT NULL,
145*c1d8dc74SAndreas Gohr    `inline`  INTEGER NOT NULL
146*c1d8dc74SAndreas Gohr);
147*c1d8dc74SAndreas GohrCREATE INDEX `idx_media_media` ON `media` (`media`);
148*c1d8dc74SAndreas GohrCREATE INDEX `idx_media_dt` ON `media` (`dt`);
149*c1d8dc74SAndreas GohrCREATE INDEX `idx_media_ua_type` ON `media` (`ua_type`);
150*c1d8dc74SAndreas GohrCREATE INDEX `idx_media_mime1` ON `media` (`mime1`);
151*c1d8dc74SAndreas Gohr
152*c1d8dc74SAndreas Gohr
153*c1d8dc74SAndreas GohrCREATE TABLE `history`
154*c1d8dc74SAndreas Gohr(
155*c1d8dc74SAndreas Gohr    `info`  TEXT    NOT NULL,
156*c1d8dc74SAndreas Gohr    `dt`    TEXT    NOT NULL,
157*c1d8dc74SAndreas Gohr    `value` INTEGER NOT NULL,
158*c1d8dc74SAndreas Gohr    PRIMARY KEY (`info`, `dt`)
159*c1d8dc74SAndreas Gohr);
160*c1d8dc74SAndreas Gohr
161*c1d8dc74SAndreas GohrCREATE TABLE `groups`
162*c1d8dc74SAndreas Gohr(
163*c1d8dc74SAndreas Gohr    `id`    INTEGER PRIMARY KEY,
164*c1d8dc74SAndreas Gohr    `dt`    TEXT NOT NULL,
165*c1d8dc74SAndreas Gohr    `group` TEXT NOT NULL,
166*c1d8dc74SAndreas Gohr    `type`  TEXT NOT NULL
167*c1d8dc74SAndreas Gohr);
168*c1d8dc74SAndreas GohrCREATE INDEX `idx_groups_dt` ON `groups` (`dt`);
169*c1d8dc74SAndreas GohrCREATE INDEX `idx_groups_type` ON `groups` (`type`);
170*c1d8dc74SAndreas Gohr
171*c1d8dc74SAndreas Gohr
172*c1d8dc74SAndreas Gohr
173*c1d8dc74SAndreas Gohr
174*c1d8dc74SAndreas Gohr
175*c1d8dc74SAndreas Gohr
176*c1d8dc74SAndreas Gohr
177*c1d8dc74SAndreas Gohr
178*c1d8dc74SAndreas Gohr
179