messenger_hsqldb.sql 5.79 KB
Newer Older
Matt Tucker's avatar
Matt Tucker committed
1 2 3 4 5
// $RCSfile$
// $Revision$
// $Date$

CREATE TABLE jiveUser (
6
  username              VARCHAR(32)     NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
7 8 9 10 11
  password              VARCHAR(32)     NOT NULL,
  name                  VARCHAR(100),
  email                 VARCHAR(100),
  creationDate          VARCHAR(15)     NOT NULL,
  modificationDate      VARCHAR(15)     NOT NULL,
12
  CONSTRAINT jiveUser_pk PRIMARY KEY (username)
Matt Tucker's avatar
Matt Tucker committed
13 14 15 16 17
);
CREATE INDEX jiveUser_cDate_idx ON jiveUser (creationDate);


CREATE TABLE jiveUserProp (
Matt Tucker's avatar
Matt Tucker committed
18
  username              VARCHAR(32)     NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
19 20
  name                  VARCHAR(100)    NOT NULL,
  propValue             VARCHAR(4000)   NOT NULL,
21
  CONSTRAINT jiveUserProp_pk PRIMARY KEY (username, name)
Matt Tucker's avatar
Matt Tucker committed
22 23 24 25
);


CREATE TABLE jivePrivate (
26
  username              VARCHAR(32)     NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
27 28 29
  name                  VARCHAR(100)    NOT NULL,
  namespace             VARCHAR(200)    NOT NULL,
  value                 LONGVARCHAR     NOT NULL,
30
  CONSTRAINT jivePrivate_pk PRIMARY KEY (username, name, namespace)
Matt Tucker's avatar
Matt Tucker committed
31 32 33 34
);


CREATE TABLE jiveOffline (
35
  username              VARCHAR(32)     NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
36 37 38 39
  messageID             BIGINT          NOT NULL,
  creationDate          VARCHAR(15)     NOT NULL,
  messageSize           INTEGER         NOT NULL,
  message               LONGVARCHAR     NOT NULL,
40
  CONSTRAINT jiveOffline_pk PRIMARY KEY (username, messageID)
Matt Tucker's avatar
Matt Tucker committed
41 42 43 44 45
);


CREATE TABLE jiveRoster (
  rosterID              BIGINT          NOT NULL,
46
  username              VARCHAR(32)     NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
47
  jid                   VARCHAR(1024)   NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
48 49 50 51 52 53
  sub                   INTEGER         NOT NULL,
  ask                   INTEGER         NOT NULL,
  recv                  INTEGER         NOT NULL,
  nick                  VARCHAR(255),
  CONSTRAINT jiveRoster_pk PRIMARY KEY (rosterID)
);
54
CREATE INDEX jiveRoster_username_idx ON jiveRoster (username);
Matt Tucker's avatar
Matt Tucker committed
55 56 57 58 59 60 61 62 63 64 65 66


CREATE TABLE jiveRosterGroups (
  rosterID              BIGINT          NOT NULL,
  rank                  INTEGER         NOT NULL,
  groupName             VARCHAR(255)    NOT NULL,
  CONSTRAINT jiveRosterGroups_pk PRIMARY KEY (rosterID, rank)
);
CREATE INDEX jiveRosterGroup_rosterid_idx ON jiveRosterGroups (rosterID);


CREATE TABLE jiveVCard (
67
  username              VARCHAR(32)     NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
68 69
  name                  VARCHAR(100)    NOT NULL,
  propValue             VARCHAR(4000)   NOT NULL,
70
  CONSTRAINT jiveVCard_pk PRIMARY KEY (username, name)
Matt Tucker's avatar
Matt Tucker committed
71 72 73 74
);


CREATE TABLE jiveGroup (
75
  groupName              VARCHAR(50)     NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
76
  description           VARCHAR(255),
77
  CONSTRAINT jiveGroup_pk PRIMARY KEY (groupName)
Matt Tucker's avatar
Matt Tucker committed
78 79 80 81
);


CREATE TABLE jiveGroupProp (
Matt Tucker's avatar
Matt Tucker committed
82
  groupName             VARCHAR(50)     NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
83 84
  name                  VARCHAR(100)    NOT NULL,
  propValue             VARCHAR(4000)   NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
85
  CONSTRAINT jiveGroupProp_pk PRIMARY KEY (groupName, name)
Matt Tucker's avatar
Matt Tucker committed
86 87 88 89
);


CREATE TABLE jiveGroupUser (
Matt Tucker's avatar
Matt Tucker committed
90
  groupName             VARCHAR(50)     NOT NULL,
91
  username              VARCHAR(32)     NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
92
  administrator         INTEGER         NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
93
  CONSTRAINT jiveGroupUser_pk PRIMARY KEY (groupName, username, administrator)
Matt Tucker's avatar
Matt Tucker committed
94 95 96 97 98 99 100 101 102
);


CREATE TABLE jiveID (
  idType                INTEGER         NOT NULL,
  id                    BIGINT          NOT NULL,
  CONSTRAINT jiveID_pk PRIMARY KEY (idType)
);

103 104 105 106 107 108 109

CREATE TABLE jiveProperty (
  name        VARCHAR(100)  NOT NULL,
  propValue   VARCHAR(4000) NOT NULL,
  CONSTRAINT jiveProperty_pk PRIMARY KEY (name)
);

Matt Tucker's avatar
Matt Tucker committed
110 111 112 113 114 115 116

CREATE TABLE jiveVersion (
  majorVersion  INTEGER  NOT NULL,
  minorVersion  INTEGER  NOT NULL
);


Matt Tucker's avatar
Matt Tucker committed
117 118 119 120
// MUC Tables

CREATE TABLE mucRoom (
  roomID              BIGINT        NOT NULL,
121 122
  creationDate        CHAR(15)      NOT NULL,
  modificationDate    CHAR(15)      NOT NULL,
123
  name                VARCHAR(50)   NOT NULL,
124
  naturalName         VARCHAR(255)  NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
125
  description         VARCHAR(255),
126
  lockedDate          CHAR(15)      NOT NULL,
127
  emptyDate           CHAR(15)      NULL,
Matt Tucker's avatar
Matt Tucker committed
128 129 130 131
  canChangeSubject    INTEGER       NOT NULL,
  maxUsers            INTEGER       NOT NULL,
  publicRoom          INTEGER       NOT NULL,
  moderated           INTEGER       NOT NULL,
132
  membersOnly         INTEGER       NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
133 134 135 136 137 138
  canInvite           INTEGER       NOT NULL,
  password            VARCHAR(50)   NULL,
  canDiscoverJID      INTEGER       NOT NULL,
  logEnabled          INTEGER       NOT NULL,
  subject             VARCHAR(100)  NULL,
  rolesToBroadcast    INTEGER       NOT NULL,
139
  CONSTRAINT mucRoom_pk PRIMARY KEY (name)
Matt Tucker's avatar
Matt Tucker committed
140 141 142 143 144 145
);

CREATE INDEX mucRoom_roomid_idx ON mucRoom(roomID);

CREATE TABLE mucAffiliation (
  roomID              BIGINT        NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
146
  jid                 VARCHAR(1024) NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
147
  affiliation         INTEGER       NOT NULL,
148
  CONSTRAINT mucAffiliation_pk PRIMARY KEY (roomID, jid)
Matt Tucker's avatar
Matt Tucker committed
149 150 151 152
);

CREATE TABLE mucMember (
  roomID              BIGINT        NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
153
  jid                 VARCHAR(1024) NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
154
  nickname            VARCHAR(255)  NULL,
155 156 157 158 159
  firstName           VARCHAR(100)  NULL,
  lastName            VARCHAR(100)  NULL,
  url                 VARCHAR(100)  NULL,
  email               VARCHAR(100)  NULL,
  faqentry            VARCHAR(100)  NULL,
160
  CONSTRAINT mucMember_pk PRIMARY KEY (roomID, jid)
Matt Tucker's avatar
Matt Tucker committed
161 162 163 164
);

CREATE TABLE mucConversationLog (
  roomID              BIGINT        NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
165
  sender              VARCHAR(1024) NOT NULL,
Matt Tucker's avatar
Matt Tucker committed
166 167 168 169 170
  nickname            VARCHAR(255)  NULL,
  time                CHAR(15)      NOT NULL,
  subject             VARCHAR(255)  NULL,
  body                LONGVARCHAR   NULL
);
171
CREATE INDEX mucLog_time_idx ON mucConversationLog (time);
Matt Tucker's avatar
Matt Tucker committed
172 173 174 175 176 177 178

// Finally, insert default table values.

INSERT INTO jiveID (idType, id) VALUES (18, 1);
INSERT INTO jiveID (idType, id) VALUES (19, 1);
INSERT INTO jiveID (idType, id) VALUES (23, 1);

Matt Tucker's avatar
Matt Tucker committed
179 180
INSERT INTO jiveVersion (majorVersion, minorVersion) VALUES (2, 1);

Matt Tucker's avatar
Matt Tucker committed
181
// Entry for admin user
182 183
INSERT INTO jiveUser (username, password, name, email, creationDate, modificationDate)
    VALUES ('admin', 'admin', 'Administrator', 'admin@example.com', '0', '0');