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