File: pgsql.sql

package info (click to toggle)
dotclear 2.6.4%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 8,420 kB
  • sloc: php: 54,270; sql: 1,290; sh: 213; xml: 173; makefile: 158
file content (272 lines) | stat: -rw-r--r-- 11,545 bytes parent folder | download
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
-- DROP TABLE IF EXISTS dc_blog;
CREATE TABLE dc_blog (
    blog_id VARCHAR(32) NOT NULL,
    blog_uid VARCHAR(32) NOT NULL,
    blog_creadt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    blog_upddt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    blog_url VARCHAR(255) NOT NULL,
    blog_name VARCHAR(255) NOT NULL,
    blog_desc TEXT,
    blog_status SMALLINT DEFAULT 1 NOT NULL,
    PRIMARY KEY (blog_id)
);

-- DROP TABLE IF EXISTS dc_category;
CREATE TABLE dc_category (
    cat_id BIGINT NOT NULL,
    blog_id VARCHAR(32) NOT NULL,
    cat_title VARCHAR(255) NOT NULL,
    cat_url VARCHAR(255) NOT NULL,
    cat_desc TEXT,
    cat_position INTEGER DEFAULT 0,
    cat_lft INTEGER,
    cat_rgt INTEGER,
    UNIQUE (cat_url, blog_id),
    CONSTRAINT dc_fk_category_blog FOREIGN KEY (blog_id) REFERENCES dc_blog(blog_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (cat_id)
);

-- DROP TABLE IF EXISTS dc_user;
CREATE TABLE dc_user (
    user_id VARCHAR(32) NOT NULL,
    user_super SMALLINT,
    user_status SMALLINT DEFAULT 1 NOT NULL,
    user_pwd VARCHAR(40) NOT NULL,
    user_change_pwd SMALLINT DEFAULT 0 NOT NULL,
    user_recover_key VARCHAR(32) DEFAULT NULL,
    user_name VARCHAR(255) DEFAULT NULL,
    user_firstname VARCHAR(255) DEFAULT NULL,
    user_displayname VARCHAR(255) DEFAULT NULL,
    user_email VARCHAR(255) DEFAULT NULL,
    user_url VARCHAR(255) DEFAULT NULL,
    user_desc TEXT,
    user_default_blog VARCHAR(32) DEFAULT NULL,
    user_options TEXT,
    user_lang VARCHAR(5) DEFAULT NULL,
    user_tz VARCHAR(128) DEFAULT 'UTC' NOT NULL,
    user_post_status SMALLINT DEFAULT (-2) NOT NULL,
    user_creadt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    user_upddt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    CONSTRAINT dc_fk_user_default_blog FOREIGN KEY (user_default_blog) REFERENCES dc_blog(blog_id) ON UPDATE CASCADE ON DELETE SET NULL,
    PRIMARY KEY (user_id)
);

-- DROP TABLE IF EXISTS dc_post;
CREATE TABLE dc_post (
    post_id BIGINT NOT NULL,
    blog_id VARCHAR(32) NOT NULL,
    user_id VARCHAR(32) NOT NULL,
    cat_id BIGINT,
    post_dt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    post_tz VARCHAR(128) DEFAULT 'UTC' NOT NULL,
    post_creadt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    post_upddt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    post_password VARCHAR(32) DEFAULT NULL,
    post_type VARCHAR(32) DEFAULT 'post' NOT NULL,
    post_format VARCHAR(32) DEFAULT 'xhtml' NOT NULL,
    post_url VARCHAR(255) NOT NULL,
    post_lang VARCHAR(5) DEFAULT NULL,
    post_title VARCHAR(255) DEFAULT NULL,
    post_excerpt TEXT,
    post_excerpt_xhtml TEXT,
    post_content TEXT,
    post_content_xhtml TEXT NOT NULL,
    post_notes TEXT,
    post_meta TEXT,
    post_words TEXT,
    post_status SMALLINT DEFAULT 0 NOT NULL,
    post_selected SMALLINT DEFAULT 0 NOT NULL,
    post_position INTEGER DEFAULT 0 NOT NULL,
    post_open_comment SMALLINT DEFAULT 0 NOT NULL,
    post_open_tb SMALLINT DEFAULT 0 NOT NULL,
    nb_comment INTEGER DEFAULT 0 NOT NULL,
    nb_trackback INTEGER DEFAULT 0 NOT NULL,
    UNIQUE (post_url, post_type, blog_id),
    CONSTRAINT dc_fk_post_blog FOREIGN KEY (blog_id) REFERENCES dc_blog(blog_id) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT dc_fk_post_category FOREIGN KEY (cat_id) REFERENCES dc_category(cat_id) ON UPDATE CASCADE ON DELETE SET NULL,
    CONSTRAINT dc_fk_post_user FOREIGN KEY (user_id) REFERENCES dc_user(user_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (post_id)
);

-- DROP TABLE IF EXISTS dc_comment;
CREATE TABLE dc_comment (
    comment_id BIGINT NOT NULL,
    post_id BIGINT NOT NULL,
    comment_dt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    comment_tz VARCHAR(128) DEFAULT 'UTC' NOT NULL,
    comment_upddt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    comment_author VARCHAR(255) DEFAULT NULL,
    comment_email VARCHAR(255) DEFAULT NULL,
    comment_site VARCHAR(255) DEFAULT NULL,
    comment_content TEXT,
    comment_words TEXT,
    comment_ip VARCHAR(39) DEFAULT NULL,
    comment_status SMALLINT DEFAULT 0,
    comment_spam_status VARCHAR(128) DEFAULT 0,
    comment_spam_filter VARCHAR(32) DEFAULT NULL,
    comment_trackback SMALLINT DEFAULT 0 NOT NULL,
    CONSTRAINT dc_fk_comment_post FOREIGN KEY (post_id) REFERENCES dc_post(post_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (comment_id)
);

-- DROP TABLE IF EXISTS dc_link;
CREATE TABLE dc_link (
    link_id BIGINT NOT NULL,
    blog_id VARCHAR(32) NOT NULL,
    link_href VARCHAR(255) NOT NULL,
    link_title VARCHAR(255) NOT NULL,
    link_desc VARCHAR(255),
    link_lang VARCHAR(5),
    link_xfn VARCHAR(255),
    link_position INTEGER DEFAULT 0 NOT NULL,
    CONSTRAINT dc_fk_link_blog FOREIGN KEY (blog_id) REFERENCES dc_blog(blog_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (link_id)
);

-- DROP TABLE IF EXISTS dc_log;
CREATE TABLE dc_log (
    log_id BIGINT NOT NULL,
    user_id VARCHAR(32),
    blog_id VARCHAR(32),
    log_table VARCHAR(255) NOT NULL,
    log_dt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    log_ip VARCHAR(39) NOT NULL,
    log_msg TEXT,
    CONSTRAINT dc_fk_log_blog FOREIGN KEY (blog_id) REFERENCES dc_blog(blog_id) ON UPDATE CASCADE ON DELETE SET NULL,
    PRIMARY KEY (log_id)
);

-- DROP TABLE IF EXISTS dc_media;
CREATE TABLE dc_media (
    media_id BIGINT NOT NULL,
    user_id VARCHAR(32) NOT NULL,
    media_path VARCHAR(255) NOT NULL,
    media_title VARCHAR(255) NOT NULL,
    media_file VARCHAR(255) NOT NULL,
    media_dir VARCHAR(255) DEFAULT '.' NOT NULL,
    media_meta TEXT,
    media_dt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    media_creadt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    media_upddt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    media_private SMALLINT DEFAULT 0 NOT NULL,
    CONSTRAINT dc_fk_media FOREIGN KEY (media_id) REFERENCES dc_media(media_id) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT dc_fk_media_user FOREIGN KEY (user_id) REFERENCES dc_user(user_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (media_id)
);

-- DROP TABLE IF EXISTS dc_meta;
CREATE TABLE dc_meta (
    meta_id VARCHAR(255) NOT NULL,
    meta_type VARCHAR(64) NOT NULL,
    post_id BIGINT NOT NULL,
    CONSTRAINT dc_fk_meta_post FOREIGN KEY (post_id) REFERENCES dc_post(post_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (meta_id, meta_type, post_id)
);

-- DROP TABLE IF EXISTS dc_permissions;
CREATE TABLE dc_permissions (
    user_id VARCHAR(32) NOT NULL,
    blog_id VARCHAR(32) NOT NULL,
    permissions TEXT,
    CONSTRAINT dc_fk_permissions_blog FOREIGN KEY (blog_id) REFERENCES dc_blog(blog_id) ON UPDATE CASCADE ON DELETE CASCADE,
    CONSTRAINT dc_fk_permissions_user FOREIGN KEY (user_id) REFERENCES dc_user(user_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (user_id, blog_id)
);

-- DROP TABLE IF EXISTS dc_ping;
CREATE TABLE dc_ping (
    post_id BIGINT NOT NULL,
    ping_url VARCHAR(255) NOT NULL,
    ping_dt TIMESTAMP without time zone DEFAULT now() NOT NULL,
    CONSTRAINT dc_fk_ping_post FOREIGN KEY (post_id) REFERENCES dc_post(post_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (post_id, ping_url)
);

-- DROP TABLE IF EXISTS dc_post_media;
CREATE TABLE dc_post_media (
    media_id BIGINT NOT NULL,
    post_id BIGINT NOT NULL,
    link_type VARCHAR(32) NOT NULL DEFAULT 'attachment',
    CONSTRAINT dc_fk_media_post FOREIGN KEY (post_id) REFERENCES dc_post(post_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (media_id, post_id, link_type)
);

-- DROP TABLE IF EXISTS dc_pref;
CREATE TABLE dc_pref (
    pref_id VARCHAR(255) NOT NULL,
    user_id VARCHAR(32),
    pref_ws VARCHAR(32) DEFAULT 'system' NOT NULL,
    pref_value text,
    pref_type VARCHAR(8) DEFAULT 'string' NOT NULL,
    pref_label TEXT,
    CONSTRAINT dc_fk_pref_user FOREIGN KEY (user_id) REFERENCES dc_user(user_id) ON UPDATE CASCADE ON DELETE CASCADE,
    UNIQUE (pref_ws, pref_id, user_id)
);

-- DROP TABLE IF EXISTS dc_session;
CREATE TABLE dc_session (
    ses_id VARCHAR(40) NOT NULL,
    ses_time INTEGER DEFAULT 0 NOT NULL,
    ses_start INTEGER DEFAULT 0 NOT NULL,
    ses_value TEXT NOT NULL,
    PRIMARY KEY (ses_id)
);

-- DROP TABLE IF EXISTS dc_setting;
CREATE TABLE dc_setting (
    setting_id VARCHAR(255) NOT NULL,
    blog_id VARCHAR(32),
    setting_ns VARCHAR(32) DEFAULT 'system' NOT NULL,
    setting_value TEXT,
    setting_type VARCHAR(8) DEFAULT 'string' NOT NULL,
    setting_label TEXT,
    CONSTRAINT dc_fk_setting_blog FOREIGN KEY (blog_id) REFERENCES dc_blog(blog_id) ON UPDATE CASCADE ON DELETE CASCADE,
    UNIQUE (setting_ns, setting_id, blog_id)
);

-- DROP TABLE IF EXISTS dc_spamrule;
CREATE TABLE dc_spamrule (
    rule_id bigint NOT NULL,
    blog_id VARCHAR(32),
    rule_type VARCHAR(16) DEFAULT 'word' NOT NULL,
    rule_content VARCHAR(128) NOT NULL,
    CONSTRAINT dc_fk_spamrule_blog FOREIGN KEY (blog_id) REFERENCES dc_blog(blog_id) ON UPDATE CASCADE ON DELETE CASCADE,
    PRIMARY KEY (rule_id)
);

-- DROP TABLE IF EXISTS dc_version;
CREATE TABLE dc_version (
    module VARCHAR(64) NOT NULL,
    version VARCHAR(32) NOT NULL,
    PRIMARY KEY (module)
);

CREATE INDEX dc_idx_pref_user_id ON dc_pref USING btree (user_id);
CREATE INDEX dc_idx_pref_user_id_null ON dc_pref USING btree (((user_id IS NULL)));
CREATE INDEX dc_idx_spamrule_blog_id ON dc_spamrule USING btree (blog_id);
CREATE INDEX dc_idx_spamrule_blog_id_null ON dc_spamrule USING btree (((blog_id IS NULL)));
CREATE INDEX dc_idx_blog_blog_upddt ON dc_blog USING btree (blog_upddt);
CREATE INDEX dc_idx_blog_post_post_dt_post_id ON dc_post USING btree (blog_id, post_dt, post_id);
CREATE INDEX dc_idx_blog_post_post_status ON dc_post USING btree (blog_id, post_status);
CREATE INDEX dc_idx_category_blog_id ON dc_category USING btree (blog_id);
CREATE INDEX dc_idx_category_cat_lft_blog_id ON dc_category USING btree (blog_id, cat_lft);
CREATE INDEX dc_idx_category_cat_rgt_blog_id ON dc_category USING btree (blog_id, cat_rgt);
CREATE INDEX dc_idx_comment_post_id ON dc_comment USING btree (post_id);
CREATE INDEX dc_idx_comment_post_id_dt_status ON dc_comment USING btree (post_id, comment_dt, comment_status);
CREATE INDEX dc_idx_link_blog_id ON dc_link USING btree (blog_id);
CREATE INDEX dc_idx_log_user_id ON dc_log USING btree (user_id);
CREATE INDEX dc_idx_media_media_path ON dc_media USING btree (media_path, media_dir);
CREATE INDEX dc_idx_media_user_id ON dc_media USING btree (user_id);
CREATE INDEX dc_idx_meta_meta_type ON dc_meta USING btree (meta_type);
CREATE INDEX dc_idx_meta_post_id ON dc_meta USING btree (post_id);
CREATE INDEX dc_idx_permissions_blog_id ON dc_permissions USING btree (blog_id);
CREATE INDEX dc_idx_post_blog_id ON dc_post USING btree (blog_id);
CREATE INDEX dc_idx_post_cat_id ON dc_post USING btree (cat_id);
CREATE INDEX dc_idx_post_media_post_id ON dc_post_media USING btree (post_id);
CREATE INDEX dc_idx_post_post_dt ON dc_post USING btree (post_dt);
CREATE INDEX dc_idx_post_post_dt_post_id ON dc_post USING btree (post_dt, post_id);
CREATE INDEX dc_idx_post_user_id ON dc_post USING btree (user_id);
CREATE INDEX dc_idx_setting_blog_id ON dc_setting USING btree (blog_id);
CREATE INDEX dc_idx_setting_blog_id_null ON dc_setting USING btree (((blog_id IS NULL)));
CREATE INDEX dc_idx_user_user_default_blog ON dc_user USING btree (user_default_blog);
CREATE INDEX dc_idx_user_user_super ON dc_user USING btree (user_super);