aboutsummaryrefslogtreecommitdiffstats
path: root/install/schema_postgres.sql
diff options
context:
space:
mode:
Diffstat (limited to 'install/schema_postgres.sql')
-rw-r--r--install/schema_postgres.sql331
1 files changed, 269 insertions, 62 deletions
diff --git a/install/schema_postgres.sql b/install/schema_postgres.sql
index e78425828..082817a60 100644
--- a/install/schema_postgres.sql
+++ b/install/schema_postgres.sql
@@ -16,8 +16,8 @@ CREATE TABLE "abook" (
"abook_account" bigint NOT NULL,
"abook_channel" bigint NOT NULL,
"abook_xchan" text NOT NULL DEFAULT '',
- "abook_my_perms" bigint NOT NULL DEFAULT '0',
- "abook_their_perms" bigint NOT NULL DEFAULT '0',
+ "abook_my_perms" bigint NOT NULL,
+ "abook_their_perms" bigint NOT NULL,
"abook_closeness" numeric(3) NOT NULL DEFAULT '99',
"abook_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"abook_updated" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
@@ -32,7 +32,8 @@ CREATE TABLE "abook" (
"abook_unconnected" smallint NOT NULL DEFAULT '0',
"abook_self" smallint NOT NULL DEFAULT '0',
"abook_feed" smallint NOT NULL DEFAULT '0',
- "abook_profile" char(64) NOT NULL DEFAULT '',
+ "abook_not_here" smallint NOT NULL DEFAULT '0',
+ "abook_profile" varchar(64) NOT NULL DEFAULT '',
"abook_incl" TEXT NOT NULL DEFAULT '',
"abook_excl" TEXT NOT NULL DEFAULT '',
"abook_instance" TEXT NOT NULL DEFAULT '',
@@ -41,8 +42,8 @@ CREATE TABLE "abook" (
create index "abook_account" on abook ("abook_account");
create index "abook_channel" on abook ("abook_channel");
create index "abook_xchan" on abook ("abook_xchan");
- create index "abook_my_perms" on abook ("abook_my_perms");
- create index "abook_their_perms" on abook ("abook_their_perms");
+ create index "abook_my_perms" on abook ("abook_my_perms");
+ create index "abook_their_perms" on abook ("abook_their_perms");
create index "abook_closeness" on abook ("abook_closeness");
create index "abook_created" on abook ("abook_created");
create index "abook_updated" on abook ("abook_updated");
@@ -55,6 +56,7 @@ CREATE TABLE "abook" (
create index "abook_unconnected" on abook ("abook_unconnected");
create index "abook_self" on abook ("abook_self");
create index "abook_feed" on abook ("abook_feed");
+ create index "abook_not_here" on abook ("abook_not_here");
create index "abook_profile" on abook ("abook_profile");
create index "abook_dob" on abook ("abook_dob");
create index "abook_connected" on abook ("abook_connected");
@@ -64,7 +66,7 @@ CREATE TABLE "account" (
"account_id" serial NOT NULL,
"account_parent" bigint NOT NULL DEFAULT '0',
"account_default_channel" bigint NOT NULL DEFAULT '0',
- "account_salt" char(32) NOT NULL DEFAULT '',
+ "account_salt" varchar(32) NOT NULL DEFAULT '',
"account_password" text NOT NULL DEFAULT '',
"account_email" text NOT NULL DEFAULT '',
"account_external" text NOT NULL DEFAULT '',
@@ -259,27 +261,11 @@ CREATE TABLE "channel" (
"channel_allow_gid" text ,
"channel_deny_cid" text ,
"channel_deny_gid" text ,
- "channel_r_stream" bigint NOT NULL DEFAULT '128',
- "channel_r_profile" bigint NOT NULL DEFAULT '128',
- "channel_r_photos" bigint NOT NULL DEFAULT '128',
- "channel_r_abook" bigint NOT NULL DEFAULT '128',
- "channel_w_stream" bigint NOT NULL DEFAULT '128',
- "channel_w_wall" bigint NOT NULL DEFAULT '128',
- "channel_w_tagwall" bigint NOT NULL DEFAULT '128',
- "channel_w_comment" bigint NOT NULL DEFAULT '128',
- "channel_w_mail" bigint NOT NULL DEFAULT '128',
- "channel_w_photos" bigint NOT NULL DEFAULT '128',
- "channel_w_chat" bigint NOT NULL DEFAULT '128',
- "channel_a_delegate" bigint NOT NULL DEFAULT '0',
- "channel_r_storage" bigint NOT NULL DEFAULT '128',
- "channel_w_storage" bigint NOT NULL DEFAULT '128',
- "channel_r_pages" bigint NOT NULL DEFAULT '128',
- "channel_w_pages" bigint NOT NULL DEFAULT '128',
- "channel_a_republish" bigint NOT NULL DEFAULT '128',
- "channel_w_like" bigint NOT NULL DEFAULT '128',
"channel_removed" smallint NOT NULL DEFAULT '0',
"channel_system" smallint NOT NULL DEFAULT '0',
"channel_moved" text NOT NULL DEFAULT '',
+ "channel_password" varchar(255) NOT NULL,
+ "channel_salt" varchar(255) NOT NULL,
PRIMARY KEY ("channel_id"),
UNIQUE ("channel_address")
);
@@ -294,28 +280,10 @@ create index "channel_pageflags" on channel ("channel_pageflags");
create index "channel_max_anon_mail" on channel ("channel_max_anon_mail");
create index "channel_max_friend_req" on channel ("channel_max_friend_req");
create index "channel_default_gid" on channel ("channel_default_group");
-create index "channel_r_stream" on channel ("channel_r_stream");
-create index "channel_r_profile" on channel ("channel_r_profile");
-create index "channel_r_photos" on channel ("channel_r_photos");
-create index "channel_r_abook" on channel ("channel_r_abook");
-create index "channel_w_stream" on channel ("channel_w_stream");
-create index "channel_w_wall" on channel ("channel_w_wall");
-create index "channel_w_tagwall" on channel ("channel_w_tagwall");
-create index "channel_w_comment" on channel ("channel_w_comment");
-create index "channel_w_mail" on channel ("channel_w_mail");
-create index "channel_w_photos" on channel ("channel_w_photos");
-create index "channel_w_chat" on channel ("channel_w_chat");
create index "channel_guid" on channel ("channel_guid");
create index "channel_hash" on channel ("channel_hash");
create index "channel_expire_days" on channel ("channel_expire_days");
-create index "channel_a_delegate" on channel ("channel_a_delegate");
-create index "channel_r_storage" on channel ("channel_r_storage");
-create index "channel_w_storage" on channel ("channel_w_storage");
-create index "channel_r_pages" on channel ("channel_r_pages");
-create index "channel_w_pages" on channel ("channel_w_pages");
create index "channel_deleted" on channel ("channel_deleted");
-create index "channel_a_republish" on channel ("channel_a_republish");
-create index "channel_w_like" on channel ("channel_w_like");
create index "channel_dirdate" on channel ("channel_dirdate");
create index "channel_lastpost" on channel ("channel_lastpost");
create index "channel_removed" on channel ("channel_removed");
@@ -338,7 +306,7 @@ CREATE TABLE "chatpresence" (
"cp_xchan" text NOT NULL DEFAULT '',
"cp_last" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"cp_status" text NOT NULL,
- "cp_client" char(128) NOT NULL DEFAULT '',
+ "cp_client" varchar(128) NOT NULL DEFAULT '',
PRIMARY KEY ("cp_id")
);
create index "cp_room" on chatpresence ("cp_room");
@@ -400,13 +368,13 @@ create index "conv_updated_idx" on conv ("updated");
CREATE TABLE IF NOT EXISTS "dreport" (
"dreport_id" serial NOT NULL,
"dreport_channel" int NOT NULL DEFAULT '0',
- "dreport_mid" char(255) NOT NULL DEFAULT '',
- "dreport_site" char(255) NOT NULL DEFAULT '',
- "dreport_recip" char(255) NOT NULL DEFAULT '',
- "dreport_result" char(255) NOT NULL DEFAULT '',
+ "dreport_mid" varchar(255) NOT NULL DEFAULT '',
+ "dreport_site" varchar(255) NOT NULL DEFAULT '',
+ "dreport_recip" varchar(255) NOT NULL DEFAULT '',
+ "dreport_result" varchar(255) NOT NULL DEFAULT '',
"dreport_time" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
- "dreport_xchan" char(255) NOT NULL DEFAULT '',
- "dreport_queue" char(255) NOT NULL DEFAULT '',
+ "dreport_xchan" varchar(255) NOT NULL DEFAULT '',
+ "dreport_queue" varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY ("dreport_id")
);
@@ -439,7 +407,7 @@ CREATE TABLE "event" (
"allow_gid" text NOT NULL,
"deny_cid" text NOT NULL,
"deny_gid" text NOT NULL,
- "event_status" char(255) NOT NULL DEFAULT '',
+ "event_status" varchar(255) NOT NULL DEFAULT '',
"event_status_date" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"event_percent" smallint NOT NULL DEFAULT '0',
"event_repeat" text NOT NULL,
@@ -609,7 +577,6 @@ CREATE TABLE "item" (
"resource_type" varchar(16) NOT NULL DEFAULT '',
"attach" text NOT NULL,
"sig" text NOT NULL DEFAULT '',
- "diaspora_meta" text NOT NULL DEFAULT '',
"location" text NOT NULL DEFAULT '',
"coord" text NOT NULL DEFAULT '',
"public_policy" text NOT NULL DEFAULT '',
@@ -654,16 +621,19 @@ create index "item_edited" on item ("edited");
create index "item_received" on item ("received");
create index "item_uid_commented" on item ("uid","commented");
create index "item_uid_created" on item ("uid","created");
+create index "item_uid_unseen" on item ("uid","item_unseen");
create index "item_changed" on item ("changed");
create index "item_comments_closed" on item ("comments_closed");
create index "item_aid" on item ("aid");
create index "item_owner_xchan" on item ("owner_xchan");
create index "item_author_xchan" on item ("author_xchan");
+create index "item_resource_id" on item ("resource_id");
create index "item_resource_type" on item ("resource_type");
create index "item_restrict" on item ("item_restrict");
create index "item_flags" on item ("item_flags");
create index "item_commented" on item ("commented");
create index "item_verb" on item ("verb");
+create index "item_obj_type" on item ("obj_type");
create index "item_private" on item ("item_private");
create index "item_llink" on item ("llink");
create index "item_expires" on item ("expires");
@@ -722,13 +692,13 @@ create index "itemid_iid" on item_id ("iid");
CREATE TABLE "likes" (
"id" serial NOT NULL,
"channel_id" bigint NOT NULL DEFAULT '0',
- "liker" char(128) NOT NULL DEFAULT '',
- "likee" char(128) NOT NULL DEFAULT '',
+ "liker" varchar(128) NOT NULL DEFAULT '',
+ "likee" varchar(128) NOT NULL DEFAULT '',
"iid" bigint NOT NULL DEFAULT '0',
- "i_mid" char(255) NOT NULL DEFAULT '',
+ "i_mid" varchar(255) NOT NULL DEFAULT '',
"verb" text NOT NULL DEFAULT '',
"target_type" text NOT NULL DEFAULT '',
- "target_id" char(128) NOT NULL DEFAULT '',
+ "target_id" varchar(128) NOT NULL DEFAULT '',
"target" text NOT NULL,
PRIMARY KEY ("id")
);
@@ -749,6 +719,7 @@ CREATE TABLE "mail" (
"to_xchan" text NOT NULL DEFAULT '',
"account_id" bigint NOT NULL DEFAULT '0',
"channel_id" bigint NOT NULL DEFAULT '0',
+ "mail_mimetype" varchar(64) NOT NULL DEFAULT '0',
"title" text NOT NULL,
"body" text NOT NULL,
"sig" text NOT NULL,
@@ -761,6 +732,7 @@ CREATE TABLE "mail" (
"mail_seen" smallint NOT NULL DEFAULT '0',
"mail_recalled" smallint NOT NULL DEFAULT '0',
"mail_obscured" smallint NOT NULL DEFAULT '0',
+ "mail_raw" smallint NOT NULL DEFAULT '0',
"created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"expires" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
PRIMARY KEY ("id")
@@ -817,7 +789,7 @@ create index "mitem_menu_id" on menu_item ("mitem_menu_id");
create index "mitem_flags" on menu_item ("mitem_flags");
CREATE TABLE "notify" (
"id" serial NOT NULL,
- "hash" char(64) NOT NULL,
+ "hash" varchar(64) NOT NULL,
"xname" text NOT NULL,
"url" text NOT NULL,
"photo" text NOT NULL,
@@ -844,14 +816,14 @@ create index "notify_otype" on notify ("otype");
create index "notify_aid" on notify ("aid");
CREATE TABLE "obj" (
"obj_id" serial NOT NULL,
- "obj_page" char(64) NOT NULL DEFAULT '',
+ "obj_page" varchar(64) NOT NULL DEFAULT '',
"obj_verb" text NOT NULL DEFAULT '',
"obj_type" bigint NOT NULL DEFAULT 0,
"obj_obj" text NOT NULL DEFAULT '',
"obj_channel" bigint NOT NULL DEFAULT 0,
- "obj_term" char(255) NOT NULL DEFAULT '',
- "obj_url" char(255) NOT NULL DEFAULT '',
- "obj_imgurl" char(255) NOT NULL DEFAULT '',
+ "obj_term" varchar(255) NOT NULL DEFAULT '',
+ "obj_url" varchar(255) NOT NULL DEFAULT '',
+ "obj_imgurl" varchar(255) NOT NULL DEFAULT '',
"obj_created" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"obj_edited" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"obj_quantity" bigint NOT NULL DEFAULT 0,
@@ -900,6 +872,19 @@ create index "outq_async" on outq ("outq_async");
create index "outq_delivered" on outq ("outq_delivered");
create index "outq_priority" on outq ("outq_priority");
+
+CREATE TABLE "pchan" (
+ "pchan_id" serial NOT NULL,
+ "pchan_guid" text NOT NULL,
+ "pchan_hash" text NOT NULL,
+ "pchan_pubkey" text NOT NULL,
+ "pchan_prvkey" text NOT NULL,
+ PRIMARY KEY ("pchan_id")
+);
+
+create index "pchan_guid" on pchan ("pchan_guid");
+create index "pchan_hash" on pchan ("pchan_hash");
+
CREATE TABLE "pconfig" (
"id" serial NOT NULL,
"uid" bigint NOT NULL DEFAULT '0',
@@ -1002,7 +987,7 @@ create index "profext_k" on profext ("k");
CREATE TABLE "profile" (
"id" serial NOT NULL,
- "profile_guid" char(64) NOT NULL DEFAULT '',
+ "profile_guid" varchar(64) NOT NULL DEFAULT '',
"aid" bigint NOT NULL DEFAULT '0',
"uid" bigint NOT NULL,
"profile_name" text NOT NULL,
@@ -1212,7 +1197,7 @@ create index "tokens_uid" on tokens ("uid");
CREATE TABLE "updates" (
"ud_id" serial NOT NULL,
- "ud_hash" char(128) NOT NULL,
+ "ud_hash" varchar(128) NOT NULL,
"ud_guid" text NOT NULL DEFAULT '',
"ud_date" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
"ud_last" timestamp NOT NULL DEFAULT '0001-01-01 00:00:00',
@@ -1393,3 +1378,225 @@ CREATE TABLE "xtag" (
create index "xtag_term" on xtag ("xtag_term");
create index "xtag_hash" on xtag ("xtag_hash");
create index "xtag_flags" on xtag ("xtag_flags");
+
+CREATE TABLE addressbooks (
+ id SERIAL NOT NULL,
+ principaluri VARCHAR(255),
+ displayname VARCHAR(255),
+ uri VARCHAR(200),
+ description TEXT,
+ synctoken INTEGER NOT NULL DEFAULT 1
+);
+
+ALTER TABLE ONLY addressbooks
+ ADD CONSTRAINT addressbooks_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX addressbooks_ukey
+ ON addressbooks USING btree (principaluri, uri);
+
+CREATE TABLE cards (
+ id SERIAL NOT NULL,
+ addressbookid INTEGER NOT NULL,
+ carddata BYTEA,
+ uri VARCHAR(200),
+ lastmodified INTEGER,
+ etag VARCHAR(32),
+ size INTEGER NOT NULL
+);
+
+ALTER TABLE ONLY cards
+ ADD CONSTRAINT cards_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX cards_ukey
+ ON cards USING btree (addressbookid, uri);
+
+CREATE TABLE addressbookchanges (
+ id SERIAL NOT NULL,
+ uri VARCHAR(200) NOT NULL,
+ synctoken INTEGER NOT NULL,
+ addressbookid INTEGER NOT NULL,
+ operation SMALLINT NOT NULL
+);
+
+ALTER TABLE ONLY addressbookchanges
+ ADD CONSTRAINT addressbookchanges_pkey PRIMARY KEY (id);
+
+CREATE INDEX addressbookchanges_addressbookid_synctoken_ix
+ ON addressbookchanges USING btree (addressbookid, synctoken);
+
+CREATE TABLE calendarobjects (
+ id SERIAL NOT NULL,
+ calendardata BYTEA,
+ uri VARCHAR(200),
+ calendarid INTEGER NOT NULL,
+ lastmodified INTEGER,
+ etag VARCHAR(32),
+ size INTEGER NOT NULL,
+ componenttype VARCHAR(8),
+ firstoccurence INTEGER,
+ lastoccurence INTEGER,
+ uid VARCHAR(200)
+);
+
+ALTER TABLE ONLY calendarobjects
+ ADD CONSTRAINT calendarobjects_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX calendarobjects_ukey
+ ON calendarobjects USING btree (calendarid, uri);
+
+
+CREATE TABLE calendars (
+ id SERIAL NOT NULL,
+ synctoken INTEGER NOT NULL DEFAULT 1,
+ components VARCHAR(21)
+);
+
+ALTER TABLE ONLY calendars
+ ADD CONSTRAINT calendars_pkey PRIMARY KEY (id);
+
+
+CREATE TABLE calendarinstances (
+ id SERIAL NOT NULL,
+ calendarid INTEGER NOT NULL,
+ principaluri VARCHAR(100),
+ access SMALLINT NOT NULL DEFAULT '1', -- '1 = owner, 2 = read, 3 = readwrite'
+ displayname VARCHAR(100),
+ uri VARCHAR(200),
+ description TEXT,
+ calendarorder INTEGER NOT NULL DEFAULT 0,
+ calendarcolor VARCHAR(10),
+ timezone TEXT,
+ transparent SMALLINT NOT NULL DEFAULT '0',
+ share_href VARCHAR(100),
+ share_displayname VARCHAR(100),
+ share_invitestatus SMALLINT NOT NULL DEFAULT '2' -- '1 = noresponse, 2 = accepted, 3 = declined, 4 = invalid'
+);
+
+ALTER TABLE ONLY calendarinstances
+ ADD CONSTRAINT calendarinstances_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX calendarinstances_principaluri_uri
+ ON calendarinstances USING btree (principaluri, uri);
+
+
+CREATE UNIQUE INDEX calendarinstances_principaluri_calendarid
+ ON calendarinstances USING btree (principaluri, calendarid);
+
+CREATE UNIQUE INDEX calendarinstances_principaluri_share_href
+ ON calendarinstances USING btree (principaluri, share_href);
+
+CREATE TABLE calendarsubscriptions (
+ id SERIAL NOT NULL,
+ uri VARCHAR(200) NOT NULL,
+ principaluri VARCHAR(100) NOT NULL,
+ source TEXT,
+ displayname VARCHAR(100),
+ refreshrate VARCHAR(10),
+ calendarorder INTEGER NOT NULL DEFAULT 0,
+ calendarcolor VARCHAR(10),
+ striptodos SMALLINT NULL,
+ stripalarms SMALLINT NULL,
+ stripattachments SMALLINT NULL,
+ lastmodified INTEGER
+);
+
+ALTER TABLE ONLY calendarsubscriptions
+ ADD CONSTRAINT calendarsubscriptions_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX calendarsubscriptions_ukey
+ ON calendarsubscriptions USING btree (principaluri, uri);
+
+CREATE TABLE calendarchanges (
+ id SERIAL NOT NULL,
+ uri VARCHAR(200) NOT NULL,
+ synctoken INTEGER NOT NULL,
+ calendarid INTEGER NOT NULL,
+ operation SMALLINT NOT NULL DEFAULT 0
+);
+
+ALTER TABLE ONLY calendarchanges
+ ADD CONSTRAINT calendarchanges_pkey PRIMARY KEY (id);
+
+CREATE INDEX calendarchanges_calendarid_synctoken_ix
+ ON calendarchanges USING btree (calendarid, synctoken);
+
+CREATE TABLE schedulingobjects (
+ id SERIAL NOT NULL,
+ principaluri VARCHAR(255),
+ calendardata BYTEA,
+ uri VARCHAR(200),
+ lastmodified INTEGER,
+ etag VARCHAR(32),
+ size INTEGER NOT NULL
+);
+
+CREATE TABLE locks (
+ id SERIAL NOT NULL,
+ owner VARCHAR(100),
+ timeout INTEGER,
+ created INTEGER,
+ token VARCHAR(100),
+ scope SMALLINT,
+ depth SMALLINT,
+ uri TEXT
+);
+
+ALTER TABLE ONLY locks
+ ADD CONSTRAINT locks_pkey PRIMARY KEY (id);
+
+CREATE INDEX locks_token_ix
+ ON locks USING btree (token);
+
+CREATE INDEX locks_uri_ix
+ ON locks USING btree (uri);
+
+CREATE TABLE principals (
+ id SERIAL NOT NULL,
+ uri VARCHAR(200) NOT NULL,
+ email VARCHAR(80),
+ displayname VARCHAR(80)
+);
+
+ALTER TABLE ONLY principals
+ ADD CONSTRAINT principals_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX principals_ukey
+ ON principals USING btree (uri);
+
+CREATE TABLE groupmembers (
+ id SERIAL NOT NULL,
+ principal_id INTEGER NOT NULL,
+ member_id INTEGER NOT NULL
+);
+
+ALTER TABLE ONLY groupmembers
+ ADD CONSTRAINT groupmembers_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX groupmembers_ukey
+ ON groupmembers USING btree (principal_id, member_id);
+
+CREATE TABLE propertystorage (
+ id SERIAL NOT NULL,
+ path VARCHAR(1024) NOT NULL,
+ name VARCHAR(100) NOT NULL,
+ valuetype INT,
+ value BYTEA
+);
+
+ALTER TABLE ONLY propertystorage
+ ADD CONSTRAINT propertystorage_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX propertystorage_ukey
+ ON propertystorage (path, name);
+
+CREATE TABLE users (
+ id SERIAL NOT NULL,
+ username VARCHAR(50),
+ digesta1 VARCHAR(32)
+);
+
+ALTER TABLE ONLY users
+ ADD CONSTRAINT users_pkey PRIMARY KEY (id);
+
+CREATE UNIQUE INDEX users_ukey
+ ON users USING btree (username);