0314d20bf8125f30c4e40a94b9adb36a2b7f2dd4
[moodle.git] / lib / db / postgres7.sql
1 CREATE TABLE prefix_config (
2    id SERIAL PRIMARY KEY,
3    name varchar(255) NOT NULL default '',
4    value text NOT NULL default '',
5    CONSTRAINT prefix_config_name_uk UNIQUE (name)
6 );
8 CREATE TABLE prefix_config_plugins (
9    id     SERIAL PRIMARY KEY,
10    plugin varchar(100) NOT NULL default 'core',
11    name   varchar(100) NOT NULL default '',
12    value  text NOT NULL default '',
13    CONSTRAINT prefix_config_plugins_plugin_name_uk UNIQUE (plugin, name)
14 );
16 CREATE TABLE prefix_course (
17    id SERIAL PRIMARY KEY,
18    category integer NOT NULL default '0',
19    sortorder integer NOT NULL default '0',
20    password varchar(50) NOT NULL default '',
21    fullname varchar(254) NOT NULL default '',
22    shortname varchar(15) NOT NULL default '',
23    idnumber varchar(100) NOT NULL default '',
24    summary text NOT NULL default '',
25    format varchar(10) NOT NULL default 'topics',
26    showgrades integer NOT NULL default '1',
27    modinfo text NOT NULL default '',
28    newsitems integer NOT NULL default '1',
29    teacher varchar(100) NOT NULL default 'Teacher',
30    teachers varchar(100) NOT NULL default 'Teachers',
31    student varchar(100) NOT NULL default 'Student',
32    students varchar(100) NOT NULL default 'Students',
33    guest integer NOT NULL default '0',
34    startdate integer NOT NULL default '0',
35    enrolperiod integer NOT NULL default '0',
36    numsections integer NOT NULL default '1',
37    marker integer NOT NULL default '0',
38    maxbytes integer NOT NULL default '0',
39    showreports integer NOT NULL default '0',
40    visible integer NOT NULL default '1',
41    hiddensections integer NOT NULL default '0',
42    groupmode integer NOT NULL default '0',
43    groupmodeforce integer NOT NULL default '0',
44    lang varchar(10) NOT NULL default '',
45    theme varchar(50) NOT NULL default '',
46    cost varchar(10) NOT NULL default '',
47    currency varchar(3) NOT NULL default 'USD',
48    timecreated integer NOT NULL default '0',
49    timemodified integer NOT NULL default '0',
50    metacourse integer NOT NULL default '0',
51    requested integer NOT NULL default '0',
52    restrictmodules integer NOT NULL default '0',
53    expirynotify integer NOT NULL default '0',
54    expirythreshold integer NOT NULL default '0',
55    notifystudents integer NOT NULL default '0',
56    enrollable integer NOT NULL default '1',
57    enrolstartdate integer NOT NULL default '0',
58    enrolenddate integer NOT NULL default '0',
59    enrol varchar(20) NOT NULL default ''
60 );
62 CREATE UNIQUE INDEX prefix_course_category_sortorder_uk ON prefix_course (category,sortorder);
63 CREATE INDEX prefix_course_idnumber_idx ON prefix_course (idnumber);
64 CREATE INDEX prefix_course_shortname_idx ON prefix_course (shortname);
66 CREATE TABLE prefix_course_categories (
67    id SERIAL PRIMARY KEY,
68    name varchar(255) NOT NULL default '',
69    description text NOT NULL default '',
70    parent integer NOT NULL default '0',
71    sortorder integer NOT NULL default '0',
72    coursecount integer NOT NULL default '0',
73    visible integer NOT NULL default '1',
74    timemodified integer NOT NULL default '0',
75    depth integer NOT NULL default '0',
76    path varchar(255) NOT NULL default ''
77 );
79 CREATE TABLE prefix_course_display (
80    id SERIAL PRIMARY KEY,
81    course integer NOT NULL default '0',
82    userid integer NOT NULL default '0',
83    display integer NOT NULL default '0'
84 );
86 CREATE INDEX prefix_course_display_courseuserid_idx ON prefix_course_display (course,userid);
88 CREATE TABLE prefix_course_meta (
89         id SERIAL primary key,
90         parent_course integer NOT NULL,
91         child_course integer NOT NULL
92 );
94 CREATE INDEX prefix_course_meta_parent_idx ON prefix_course_meta (parent_course);
95 CREATE INDEX prefix_course_meta_child_idx ON prefix_course_meta (child_course);
97 CREATE TABLE prefix_course_modules (
98    id SERIAL PRIMARY KEY,
99    course integer NOT NULL default '0',
100    module integer NOT NULL default '0',
101    instance integer NOT NULL default '0',
102    section integer NOT NULL default '0',
103    added integer NOT NULL default '0',
104    score integer NOT NULL default '0',
105    indent integer NOT NULL default '0',
106    visible integer NOT NULL default '1',
107    groupmode integer NOT NULL default '0'
108 );
110 CREATE INDEX prefix_course_modules_visible_idx ON prefix_course_modules (visible);
111 CREATE INDEX prefix_course_modules_course_idx ON prefix_course_modules (course);
112 CREATE INDEX prefix_course_modules_module_idx ON prefix_course_modules (module);
113 CREATE INDEX prefix_course_modules_instance_idx ON prefix_course_modules (instance);
115 CREATE TABLE prefix_course_sections (
116    id SERIAL PRIMARY KEY,
117    course integer NOT NULL default '0',
118    section integer NOT NULL default '0',
119    summary text NOT NULL default '',
120    sequence text NOT NULL default '',
121    visible integer NOT NULL default '1'
122 );
124 CREATE INDEX prefix_course_sections_coursesection_idx ON prefix_course_sections (course,section);
126 CREATE TABLE prefix_course_request (
127    id SERIAL PRIMARY KEY,
128    fullname varchar(254) NOT NULL default '',
129    shortname varchar(15) NOT NULL default '',
130    summary text NOT NULL default '',
131    reason text NOT NULL default '',
132    requester INTEGER NOT NULL default 0,
133    password varchar(50) NOT NULL default ''
134 );
136 CREATE INDEX prefix_course_request_shortname_idx ON prefix_course_request (shortname);
138 CREATE TABLE prefix_course_allowed_modules (
139    id SERIAL PRIMARY KEY,
140    course INTEGER NOT NULL default 0,
141    module INTEGER NOT NULL default 0
142 );
143          
144 CREATE INDEX prefix_course_allowed_modules_course_idx ON prefix_course_allowed_modules (course);
145 CREATE INDEX prefix_course_allowed_modules_module_idx ON prefix_course_allowed_modules (module);
147 CREATE TABLE prefix_event (
148    id SERIAL PRIMARY KEY,
149    name varchar(255) NOT NULL default '',
150    description text,
151    format integer NOT NULL default '0',
152    courseid integer NOT NULL default '0',
153    groupid integer NOT NULL default '0',
154    userid integer NOT NULL default '0',
155    repeatid integer NOT NULL default '0',
156    modulename varchar(20) NOT NULL default '',
157    instance integer NOT NULL default '0',
158    eventtype varchar(20) NOT NULL default '',
159    timestart integer NOT NULL default '0',
160    timeduration integer NOT NULL default '0',
161    visible integer NOT NULL default '1',
162    uuid char(36) NOT NULL default '',
163    sequence integer NOT NULL default '1',
164    timemodified integer NOT NULL default '0'
165 );
167 CREATE INDEX prefix_event_courseid_idx ON prefix_event (courseid);
168 CREATE INDEX prefix_event_userid_idx ON prefix_event (userid);
169 CREATE INDEX prefix_event_timestart_idx ON prefix_event (timestart);
170 CREATE INDEX prefix_event_timeduration_idx ON prefix_event (timeduration);
173 CREATE TABLE prefix_grade_category (
174   id SERIAL PRIMARY KEY,
175   name varchar(64) default NULL,
176   courseid integer NOT NULL default '0',
177   drop_x_lowest integer NOT NULL default '0',
178   bonus_points integer NOT NULL default '0',
179   hidden integer NOT NULL default '0',
180   weight decimal(5,2) default '0.00'
181 );
183 CREATE INDEX prefix_grade_category_courseid_idx ON prefix_grade_category (courseid);
185 CREATE TABLE prefix_grade_exceptions (
186   id SERIAL PRIMARY KEY,
187   courseid integer  NOT NULL default '0',
188   grade_itemid integer  NOT NULL default '0',
189   userid integer  NOT NULL default '0'
190 );
192 CREATE INDEX prefix_grade_exceptions_courseid_idx ON prefix_grade_exceptions (courseid);
195 CREATE TABLE prefix_grade_item (
196   id SERIAL PRIMARY KEY,
197   courseid integer default NULL,
198   category integer default NULL,
199   modid integer default NULL,
200   cminstance integer default NULL,
201   scale_grade float(11) default '1.0000000000',
202   extra_credit integer NOT NULL default '0',
203   sort_order integer  NOT NULL default '0'
204 );
206 CREATE INDEX prefix_grade_item_courseid_idx ON prefix_grade_item (courseid);
208 CREATE TABLE prefix_grade_letter (
209   id SERIAL PRIMARY KEY,
210   courseid integer NOT NULL default '0',
211   letter varchar(8) NOT NULL default 'NA',
212   grade_high decimal(6,2) NOT NULL default '100.00',
213   grade_low decimal(6,2) NOT NULL default '0.00'
214 );
216 CREATE INDEX prefix_grade_letter_courseid_idx ON prefix_grade_letter (courseid);
218 CREATE TABLE prefix_grade_preferences (
219   id SERIAL PRIMARY KEY,
220   courseid integer default NULL,
221   preference integer NOT NULL default '0',
222   value integer NOT NULL default '0'
223 );
225 CREATE UNIQUE INDEX prefix_grade_prefs_courseidpref_uk ON prefix_grade_preferences (courseid,preference);
227 CREATE TABLE prefix_groups (
228    id SERIAL PRIMARY KEY,
229    courseid integer NOT NULL default '0',
230    name varchar(255) NOT NULL default '',
231    description text,
232    password varchar(50) NOT NULL default '',
233    lang varchar(10) NOT NULL default '',
234    theme varchar(50) NOT NULL default '',
235    picture integer NOT NULL default '0',
236    hidepicture integer NOT NULL default '0',
237    timecreated integer NOT NULL default '0',
238    timemodified integer NOT NULL default '0'
239 );
241 CREATE INDEX prefix_groups_idx ON prefix_groups (courseid);
243 CREATE TABLE prefix_groups_members (
244    id SERIAL PRIMARY KEY,
245    groupid integer NOT NULL default '0',
246    userid integer NOT NULL default '0',
247    timeadded integer NOT NULL default '0'
248 );
250 CREATE INDEX prefix_groups_members_idx ON prefix_groups_members (groupid);
251 CREATE INDEX prefix_groups_members_userid_idx ON prefix_groups_members (userid);
253 CREATE TABLE prefix_log (
254    id SERIAL PRIMARY KEY,
255    time integer NOT NULL default '0',
256    userid integer NOT NULL default '0',
257    ip varchar(15) NOT NULL default '',
258    course integer NOT NULL default '0',
259    module varchar(20) NOT NULL default '',
260    cmid integer NOT NULL default '0',
261    action varchar(20) NOT NULL default '',
262    url varchar(100) NOT NULL default '',
263    info varchar(255) NOT NULL default ''
264 );
266 CREATE INDEX prefix_log_coursemoduleaction_idx ON prefix_log (course,module,action);
267 CREATE INDEX prefix_log_timecoursemoduleaction_idx ON prefix_log (time,course,module,action);
268 CREATE INDEX prefix_log_courseuserid_idx ON prefix_log (course,userid);
270 CREATE TABLE prefix_log_display (
271    module varchar(20) NOT NULL default '',
272    action varchar(20) NOT NULL default '',
273    mtable varchar(20) NOT NULL default '',
274    field varchar(40) NOT NULL default ''
275 );
277 CREATE TABLE prefix_message (
278    id SERIAL PRIMARY KEY,
279    useridfrom integer NOT NULL default '0',
280    useridto integer NOT NULL default '0',
281    message text,
282    format integer NOT NULL default '0',
283    timecreated integer NOT NULL default '0',
284    messagetype varchar(50) NOT NULL default ''
285 );
287 CREATE INDEX prefix_message_useridfrom_idx ON prefix_message (useridfrom);
288 CREATE INDEX prefix_message_useridto_idx ON prefix_message (useridto);
290 CREATE TABLE prefix_message_read (
291    id SERIAL PRIMARY KEY,
292    useridfrom integer NOT NULL default '0',
293    useridto integer NOT NULL default '0',
294    message text,
295    format integer NOT NULL default '0',
296    timecreated integer NOT NULL default '0',
297    timeread integer NOT NULL default '0',
298    messagetype varchar(50) NOT NULL default '',
299    mailed integer NOT NULL default '0'
300 );
302 CREATE INDEX prefix_message_read_useridfrom_idx ON prefix_message_read (useridfrom);
303 CREATE INDEX prefix_message_read_useridto_idx ON prefix_message_read (useridto);
305 CREATE TABLE prefix_message_contacts (
306    id SERIAL PRIMARY KEY,
307    userid integer NOT NULL default '0',
308    contactid integer NOT NULL default '0',
309    blocked integer NOT NULL default '0'
310 );
312 CREATE INDEX prefix_message_contacts_useridcontactid_idx ON prefix_message_contacts (userid,contactid);
314 CREATE TABLE prefix_modules (
315    id SERIAL PRIMARY KEY,
316    name varchar(20) NOT NULL default '',
317    version integer NOT NULL default '0',
318    cron integer NOT NULL default '0',
319    lastcron integer NOT NULL default '0',
320    search varchar(255) NOT NULL default '',
321    visible integer NOT NULL default '1'
322 );
324 CREATE INDEX prefix_modules_name_idx ON prefix_modules (name);
326 CREATE TABLE prefix_scale (
327    id SERIAL PRIMARY KEY,
328    courseid integer NOT NULL default '0',
329    userid integer NOT NULL default '0',
330    name varchar(255) NOT NULL default '',
331    scale text,
332    description text,
333    timemodified integer NOT NULL default '0'
334 );
336 CREATE TABLE prefix_sessions (
337   sesskey char(32) PRIMARY KEY,
338   expiry integer NOT null,
339   expireref varchar(64),
340   data text NOT null
341 );
343 CREATE INDEX prefix_sessions_expiry_idx ON prefix_sessions (expiry);
345 CREATE TABLE prefix_timezone (
346   id SERIAL PRIMARY KEY,
347   name varchar(100) NOT NULL default '',
348   year integer NOT NULL default '0',
349   rule varchar(20) NOT NULL default '',
350   gmtoff integer NOT NULL default '0',
351   dstoff integer NOT NULL default '0',
352   dst_month integer NOT NULL default '0',
353   dst_startday integer NOT NULL default '0',
354   dst_weekday integer NOT NULL default '0',
355   dst_skipweeks integer NOT NULL default '0',
356   dst_time varchar(5) NOT NULL default '00:00',
357   std_month integer NOT NULL default '0',
358   std_startday integer NOT NULL default '0',
359   std_weekday integer NOT NULL default '0',
360   std_skipweeks integer NOT NULL default '0',
361   std_time varchar(5) NOT NULL default '00:00'
362 );
365 CREATE TABLE prefix_cache_filters (
366    id SERIAL PRIMARY KEY,
367    filter varchar(32) NOT NULL default '',
368    version integer NOT NULL default '0',
369    md5key varchar(32) NOT NULL default '',
370    rawtext text,
371    timemodified integer NOT NULL default '0'
372 );
374 CREATE INDEX prefix_cache_filters_filtermd5key_idx ON prefix_cache_filters (filter,md5key);
376 CREATE INDEX prefix_scale_courseid_idx ON prefix_scale (courseid);
379 CREATE TABLE prefix_cache_text (
380    id SERIAL PRIMARY KEY,
381    md5key varchar(32) NOT NULL default '',
382    formattedtext text,
383    timemodified integer NOT NULL default '0'
384 );
386 CREATE INDEX prefix_cache_text_md5key_idx ON prefix_cache_text (md5key);
389 # Table structure for table `user`
391 # When updating field length, modify
392 # truncate_userinfo() in moodlelib.php
394 CREATE TABLE prefix_user (
395    id SERIAL PRIMARY KEY,
396    auth varchar(20) NOT NULL default 'manual',
397    confirmed integer NOT NULL default '0',
398    policyagreed integer NOT NULL default '0',
399    deleted integer NOT NULL default '0',
400    username varchar(100) NOT NULL default '',
401    password varchar(32) NOT NULL default '',
402    idnumber varchar(64) default NULL,
403    firstname varchar(20) NOT NULL default '',
404    lastname varchar(20) NOT NULL default '',
405    email varchar(100) NOT NULL default '',
406    emailstop integer NOT NULL default '0',
407    icq varchar(15) default NULL,
408    skype varchar(50) default NULL,
409    yahoo varchar(50) default NULL,
410    aim varchar(50) default NULL,
411    msn varchar(50) default NULL,
412    phone1 varchar(20) default NULL,
413    phone2 varchar(20) default NULL,
414    institution varchar(40) default NULL,
415    department varchar(30) default NULL,
416    address varchar(70) default NULL,
417    city varchar(20) default NULL,
418    country char(2) default NULL,
419    lang varchar(10) NOT NULL default '',
420    theme varchar(50) NOT NULL default '',
421    timezone varchar(100) NOT NULL default '99',
422    firstaccess integer NOT NULL default '0',
423    lastaccess integer NOT NULL default '0',
424    lastlogin integer NOT NULL default '0',
425    currentlogin integer NOT NULL default '0',
426    lastIP varchar(15) default NULL,
427    secret varchar(15) default NULL,
428    picture integer default NULL,
429    url varchar(255) default NULL,
430    description text,
431    mailformat integer NOT NULL default '1',
432    maildigest integer NOT NULL default '0',
433    maildisplay integer NOT NULL default '2',
434    htmleditor integer NOT NULL default '1',
435    autosubscribe integer NOT NULL default '1',
436    trackforums integer NOT NULL default '0',
437    timemodified integer NOT NULL default '0'
438 );
440 CREATE UNIQUE INDEX prefix_user_username_uk ON prefix_user (username);
441 CREATE INDEX prefix_user_idnumber_idx ON prefix_user (idnumber);
442 CREATE INDEX prefix_user_auth_idx ON prefix_user (auth);
443 CREATE INDEX prefix_user_deleted_idx ON prefix_user (deleted);
444 CREATE INDEX prefix_user_confirmed_idx ON prefix_user (confirmed);
445 CREATE INDEX prefix_user_firstname_idx ON prefix_user (firstname);
446 CREATE INDEX prefix_user_lastname_idx ON prefix_user (lastname);
447 CREATE INDEX prefix_user_city_idx ON prefix_user (city);
448 CREATE INDEX prefix_user_country_idx ON prefix_user (country);
449 CREATE INDEX prefix_user_lastaccess_idx ON prefix_user (lastaccess);
450 CREATE INDEX prefix_user_email_idx ON prefix_user (email);
452 CREATE TABLE prefix_user_admins (
453    id SERIAL PRIMARY KEY,
454    userid integer NOT NULL default '0'
455 );
457 CREATE INDEX prefix_user_admins_userid_idx ON prefix_user_admins (userid);
459 CREATE TABLE prefix_user_preferences (
460    id SERIAL PRIMARY KEY,
461    userid integer NOT NULL default '0',
462    name varchar(50) NOT NULL default '',
463    value varchar(255) NOT NULL default ''
464 );
466 CREATE INDEX prefix_user_preferences_useridname_idx ON prefix_user_preferences (userid,name);
468 CREATE TABLE prefix_user_students (
469    id SERIAL PRIMARY KEY,
470    userid integer NOT NULL default '0',
471    course integer NOT NULL default '0',
472    timestart integer NOT NULL default '0',
473    timeend integer NOT NULL default '0',
474    time integer NOT NULL default '0',
475    timeaccess integer NOT NULL default '0',
476    enrol varchar (20) NOT NULL default ''
477 );
479 CREATE UNIQUE INDEX prefix_user_students_courseuserid_uk ON prefix_user_students (course,userid);
480 CREATE INDEX prefix_user_students_userid_idx ON prefix_user_students (userid);
481 CREATE INDEX prefix_user_students_enrol_idx ON prefix_user_students (enrol);
482 CREATE INDEX prefix_user_students_timeaccess_idx ON prefix_user_students (timeaccess);
484 CREATE TABLE prefix_user_teachers (
485    id SERIAL PRIMARY KEY,
486    userid integer NOT NULL default '0',
487    course integer NOT NULL default '0',
488    authority integer NOT NULL default '3',
489    role varchar(40) NOT NULL default '',
490    editall integer NOT NULL default '1',
491    timestart integer NOT NULL default '0',
492    timeend integer NOT NULL default '0',
493    timemodified integer NOT NULL default '0',
494    timeaccess integer NOT NULL default '0',
495    enrol varchar (20) NOT NULL default ''
496 );
498 CREATE UNIQUE INDEX prefix_user_teachers_courseuserid_uk ON prefix_user_teachers (course,userid);
499 CREATE INDEX prefix_user_teachers_userid_idx ON prefix_user_teachers (userid);
500 CREATE INDEX prefix_user_teachers_enrol_idx ON prefix_user_teachers (enrol);
502 CREATE TABLE prefix_user_coursecreators (
503    id SERIAL8 PRIMARY KEY,
504    userid int8  NOT NULL default '0'
505 );
507 CREATE INDEX prefix_user_coursecreators_userid_idx ON prefix_user_coursecreators (userid);
509 CREATE TABLE adodb_logsql (
510    created timestamp NOT NULL,
511    sql0 varchar(250) NOT NULL,
512    sql1 text NOT NULL,
513    params text NOT NULL,
514    tracer text NOT NULL,
515    timer decimal(16,6) NOT NULL
516 );
518 CREATE TABLE prefix_stats_daily (
519    id SERIAL PRIMARY KEY,
520    courseid INTEGER NOT NULL default 0,
521    timeend INTEGER NOT NULL default 0,
522    students INTEGER NOT NULL default 0,
523    teachers INTEGER NOT NULL default 0,
524    activestudents INTEGER NOT NULL default 0,
525    activeteachers INTEGER NOT NULL default 0,
526    studentreads INTEGER NOT NULL default 0,
527    studentwrites INTEGER NOT NULL default 0,
528    teacherreads INTEGER NOT NULL default 0,
529    teacherwrites INTEGER NOT NULL default 0,
530    logins INTEGER NOT NULL default 0,
531    uniquelogins INTEGER NOT NULL default 0
532 );
534 CREATE INDEX prefix_stats_daily_courseid_idx ON prefix_stats_daily (courseid);
535 CREATE INDEX prefix_stats_daily_timeend_idx ON prefix_stats_daily (timeend);
537 CREATE TABLE prefix_stats_weekly (
538    id SERIAL PRIMARY KEY,
539    courseid INTEGER NOT NULL default 0,
540    timeend INTEGER NOT NULL default 0,
541    students INTEGER NOT NULL default 0,
542    teachers INTEGER NOT NULL default 0,
543    activestudents INTEGER NOT NULL default 0,
544    activeteachers INTEGER NOT NULL default 0,
545    studentreads INTEGER NOT NULL default 0,
546    studentwrites INTEGER NOT NULL default 0,
547    teacherreads INTEGER NOT NULL default 0,
548    teacherwrites INTEGER NOT NULL default 0,
549    logins INTEGER NOT NULL default 0,
550    uniquelogins INTEGER NOT NULL default 0
551 );
553 CREATE INDEX prefix_stats_weekly_courseid_idx ON prefix_stats_weekly (courseid);
554 CREATE INDEX prefix_stats_weekly_timeend_idx ON prefix_stats_weekly (timeend);
556 CREATE TABLE prefix_stats_monthly (
557    id SERIAL PRIMARY KEY,
558    courseid INTEGER NOT NULL default 0,
559    timeend INTEGER NOT NULL default 0,
560    students INTEGER NOT NULL default 0,
561    teachers INTEGER NOT NULL default 0,
562    activestudents INTEGER NOT NULL default 0,
563    activeteachers INTEGER NOT NULL default 0,
564    studentreads INTEGER NOT NULL default 0,
565    studentwrites INTEGER NOT NULL default 0,
566    teacherreads INTEGER NOT NULL default 0,
567    teacherwrites INTEGER NOT NULL default 0,
568    logins INTEGER NOT NULL default 0,
569    uniquelogins INTEGER NOT NULL default 0
570 );
572 CREATE INDEX prefix_stats_monthly_courseid_idx ON prefix_stats_monthly (courseid);
573 CREATE INDEX prefix_stats_monthly_timeend_idx ON prefix_stats_monthly (timeend);
575 CREATE TABLE prefix_stats_user_daily (
576    id SERIAL PRIMARY KEY,
577    courseid INTEGER NOT NULL default 0,
578    userid INTEGER NOT NULL default 0,
579    roleid INTEGER NOT NULL default 0,
580    timeend INTEGER NOT NULL default 0,
581    reads INTEGER NOT NULL default 0,
582    writes INTEGER NOT NULL default 0,
583    stattype varchar(30) NOT NULL default ''
584 );
585          
586 CREATE INDEX prefix_stats_user_daily_courseid_idx ON prefix_stats_user_daily (courseid);
587 CREATE INDEX prefix_stats_user_daily_userid_idx ON prefix_stats_user_daily (userid);
588 CREATE INDEX prefix_stats_user_daily_roleid_idx ON prefix_stats_user_daily (roleid);
589 CREATE INDEX prefix_stats_user_daily_timeend_idx ON prefix_stats_user_daily (timeend);
591 CREATE TABLE prefix_stats_user_weekly (
592    id SERIAL PRIMARY KEY,
593    courseid INTEGER NOT NULL default 0,
594    userid INTEGER NOT NULL default 0,
595    roleid INTEGER NOT NULL default 0,
596    timeend INTEGER NOT NULL default 0,
597    reads INTEGER NOT NULL default 0,
598    writes INTEGER NOT NULL default 0,
599    stattype varchar(30) NOT NULL default ''
600 );
601          
602 CREATE INDEX prefix_stats_user_weekly_courseid_idx ON prefix_stats_user_weekly (courseid);
603 CREATE INDEX prefix_stats_user_weekly_userid_idx ON prefix_stats_user_weekly (userid);
604 CREATE INDEX prefix_stats_user_weekly_roleid_idx ON prefix_stats_user_weekly (roleid);
605 CREATE INDEX prefix_stats_user_weekly_timeend_idx ON prefix_stats_user_weekly (timeend);
607 CREATE TABLE prefix_stats_user_monthly (
608    id SERIAL PRIMARY KEY,
609    courseid INTEGER NOT NULL default 0,
610    userid INTEGER NOT NULL default 0,
611    roleid INTEGER NOT NULL default 0,
612    timeend INTEGER NOT NULL default 0,
613    reads INTEGER NOT NULL default 0,
614    writes INTEGER NOT NULL default 0,
615    stattype varchar(30) NOT NULL default ''
616 );
617          
618 CREATE INDEX prefix_stats_user_monthly_courseid_idx ON prefix_stats_user_monthly (courseid);
619 CREATE INDEX prefix_stats_user_monthly_userid_idx ON prefix_stats_user_monthly (userid);
620 CREATE INDEX prefix_stats_user_monthly_roleid_idx ON prefix_stats_user_monthly (roleid);
621 CREATE INDEX prefix_stats_user_monthly_timeend_idx ON prefix_stats_user_monthly (timeend);
623 INSERT INTO prefix_log_display VALUES ('user', 'view', 'user', 'firstname||\' \'||lastname');
624 INSERT INTO prefix_log_display VALUES ('course', 'user report', 'user', 'firstname||\' \'||lastname');
625 INSERT INTO prefix_log_display VALUES ('course', 'view', 'course', 'fullname');
626 INSERT INTO prefix_log_display VALUES ('course', 'update', 'course', 'fullname');
627 INSERT INTO prefix_log_display VALUES ('course', 'enrol', 'course', 'fullname');
628 INSERT INTO prefix_log_display VALUES ('message', 'write', 'user', 'firstname||\' \'||lastname');
629 INSERT INTO prefix_log_display VALUES ('message', 'read', 'user', 'firstname||\' \'||lastname');
630 INSERT INTO prefix_log_display VALUES ('message', 'add contact', 'user', 'firstname||\' \'||lastname');
631 INSERT INTO prefix_log_display VALUES ('message', 'remove contact', 'user', 'firstname||\' \'||lastname');
632 INSERT INTO prefix_log_display VALUES ('message', 'block contact', 'user', 'firstname||\' \'||lastname');
633 INSERT INTO prefix_log_display VALUES ('message', 'unblock contact', 'user', 'firstname||\' \'||lastname');