]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - db/statusnet.sql
Logic to have group joins turn into pending joins automatically when group is set...
[quix0rs-gnu-social.git] / db / statusnet.sql
index 3f95948e1ed5ede5d9cde05511f78fb49f657021..debe6f095cebe2ecce4a1a6b2f1413aaddbc1ca7 100644 (file)
@@ -62,11 +62,6 @@ create table user (
     language varchar(50) comment 'preferred language',
     timezone varchar(50) comment 'timezone',
     emailpost tinyint default 1 comment 'Post by email',
-    jabber varchar(255) unique key comment 'jabber ID for notices',
-    jabbernotify tinyint default 0 comment 'whether to send notices to jabber',
-    jabberreplies tinyint default 0 comment 'whether to send notices to jabber on replies',
-    jabbermicroid tinyint default 1 comment 'whether to publish xmpp microid',
-    updatefrompresence tinyint default 0 comment 'whether to record updates from Jabber presence notices',
     sms varchar(64) unique key comment 'sms phone number',
     carrier integer comment 'foreign key to sms_carrier' references sms_carrier (id),
     smsnotify tinyint default 0 comment 'whether to send notices to SMS',
@@ -131,11 +126,21 @@ create table notice (
     location_ns integer comment 'namespace for location',
     repeat_of integer comment 'notice this is a repeat of' references notice (id),
 
+    -- For public timeline...
+    index notice_created_id_is_local_idx (created,id,is_local),
+
+    -- For profile timelines...
     index notice_profile_id_idx (profile_id,created,id),
-    index notice_conversation_idx (conversation),
-    index notice_created_idx (created),
+
+    -- For api/statuses/repeats...
+    index notice_repeat_of_created_id_idx (repeat_of, created, id),
+
+    -- For conversation views
+    index notice_conversation_created_id_idx (conversation, created, id),
+
+    -- Are these needed/used?
     index notice_replyto_idx (reply_to),
-    index notice_repeatof_idx (repeat_of),
+
     FULLTEXT(content)
 ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
 
@@ -156,7 +161,10 @@ create table reply (
     constraint primary key (notice_id, profile_id),
     index reply_notice_id_idx (notice_id),
     index reply_profile_id_idx (profile_id),
-    index reply_replied_id_idx (replied_id)
+    index reply_replied_id_idx (replied_id),
+
+    -- Needed for sorting reply/mentions timelines
+    index reply_profile_id_modified_notice_id_idx (profile_id, modified, notice_id)
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
@@ -237,6 +245,15 @@ create table oauth_application_user (
     constraint primary key (profile_id, application_id)
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
+create table oauth_token_association (
+    profile_id integer not null comment 'user of the application' references profile (id),
+    application_id integer not null comment 'id of the application' references oauth_application (id),
+    token varchar(255) comment 'request or access token',
+    created datetime not null comment 'date this record was created',
+    modified timestamp comment 'date this record was modified',
+    constraint primary key (profile_id, application_id, token)
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+
 /* These are used by JanRain OpenID library */
 
 create table oid_associations (
@@ -259,9 +276,9 @@ create table oid_nonces (
 create table confirm_address (
     code varchar(32) not null primary key comment 'good random code',
     user_id integer not null comment 'user who requested confirmation' references user (id),
-    address varchar(255) not null comment 'address (email, Jabber, SMS, etc.)',
+    address varchar(255) not null comment 'address (email, xmpp, SMS, etc.)',
     address_extra varchar(255) not null comment 'carrier ID, for SMS',
-    address_type varchar(8) not null comment 'address type ("email", "jabber", "sms")',
+    address_type varchar(8) not null comment 'address type ("email", "xmpp", "sms")',
     claimed datetime comment 'date this was claimed for queueing',
     sent datetime comment 'date this was sent for queueing',
     modified timestamp comment 'date this record was modified'
@@ -276,7 +293,7 @@ create table remember_me (
 create table queue_item (
     id integer auto_increment primary key comment 'unique identifier',
     frame blob not null comment 'data: object reference or opaque string',
-    transport varchar(8) not null comment 'queue for what? "email", "jabber", "sms", "irc", ...',
+    transport varchar(8) not null comment 'queue for what? "email", "xmpp", "sms", "irc", ...',
     created datetime not null comment 'date this record was created',
     claimed datetime comment 'date this item was claimed',
 
@@ -292,7 +309,10 @@ create table notice_tag (
 
     constraint primary key (tag, notice_id),
     index notice_tag_created_idx (created),
-    index notice_tag_notice_id_idx (notice_id)
+    index notice_tag_notice_id_idx (notice_id),
+
+    -- For sorting tag-filtered public timeline
+    index notice_tag_tag_created_notice_id_idx (tag, created, notice_id)
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
 /* Synching with foreign services */
@@ -348,7 +368,7 @@ create table invitation (
      code varchar(32) not null primary key comment 'random code for an invitation',
      user_id int not null comment 'who sent the invitation' references user (id),
      address varchar(255) not null comment 'invitation sent to',
-     address_type varchar(8) not null comment 'address type ("email", "jabber", "sms")',
+     address_type varchar(8) not null comment 'address type ("email", "xmpp", "sms")',
      created datetime not null comment 'date this record was created',
 
      index invitation_address_idx (address, address_type),
@@ -438,7 +458,10 @@ create table group_member (
 
     constraint primary key (group_id, profile_id),
     index group_member_profile_id_idx (profile_id),
-    index group_member_created_idx (created)
+    index group_member_created_idx (created),
+
+    -- To pull up a list of someone's groups in order joined
+    index group_member_profile_id_created_idx (profile_id, created)
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
@@ -459,7 +482,10 @@ create table group_inbox (
 
     constraint primary key (group_id, notice_id),
     index group_inbox_created_idx (created),
-    index group_inbox_notice_id_idx (notice_id)
+    index group_inbox_notice_id_idx (notice_id),
+
+    -- Needed for sorting group messages by timestamp
+    index group_inbox_group_id_created_notice_id_idx (group_id, created, notice_id)
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
@@ -599,7 +625,8 @@ create table profile_role (
     role    varchar(32) not null comment 'string representing the role',
     created datetime not null comment 'date the role was granted',
 
-    constraint primary key (profile_id, role)
+    constraint primary key (profile_id, role),
+    index profile_role_role_created_profile_id_idx (role, created, profile_id)
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
@@ -639,6 +666,21 @@ create table inbox (
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
+create table user_im_prefs (
+    user_id integer not null comment 'user' references user (id),
+    screenname varchar(255) not null comment 'screenname on this service',
+    transport varchar(255) not null comment 'transport (ex xmpp, aim)',
+    notify tinyint(1) not null default 0 comment 'Notify when a new notice is sent',
+    replies tinyint(1) not null default 0 comment 'Send replies  from people not subscribed to',
+    microid tinyint(1) not null default 1 comment 'Publish a MicroID',
+    updatefrompresence tinyint(1) not null default 0 comment 'Send replies  from people not subscribed to.',
+    created timestamp not null DEFAULT CURRENT_TIMESTAMP comment 'date this record was created',
+    modified timestamp comment 'date this record was modified',
+
+    constraint primary key (user_id, transport),
+    constraint unique key `transport_screenname_key` ( `transport` , `screenname` )
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
+
 create table conversation (
     id integer auto_increment primary key comment 'unique identifier',
     uri varchar(225) unique comment 'URI of the conversation',
@@ -656,3 +698,15 @@ create table local_group (
 
 ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;
 
+create table user_urlshortener_prefs (
+
+   user_id integer not null comment 'user' references user (id),
+   urlshorteningservice varchar(50) default 'ur1.ca' comment 'service to use for auto-shortening URLs',
+   maxurllength integer not null comment 'urls greater than this length will be shortened, 0 = always, null = never',
+   maxnoticelength integer not null comment 'notices with content greater than this value will have all urls shortened, 0 = always, null = never',
+
+   created datetime not null comment 'date this record was created',
+   modified timestamp comment 'date this record was modified',
+
+   constraint primary key (user_id)
+) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin;