From bd68154772e80a98e9e5c96c6df8772ce3b2a84f Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Wed, 24 Feb 2010 23:28:41 -0500 Subject: Make user_group able to handle remote groups We add a local_group table to store data about local groups. It has the unique key for nickname, so /group/ looks up here. Updated DB data object classes and data files. --- db/statusnet.sql | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'db/statusnet.sql') diff --git a/db/statusnet.sql b/db/statusnet.sql index 97117c80a..75d060e28 100644 --- a/db/statusnet.sql +++ b/db/statusnet.sql @@ -406,7 +406,7 @@ create table profile_block ( create table user_group ( id integer auto_increment primary key comment 'unique identifier', - nickname varchar(64) unique key comment 'nickname for addressing', + nickname varchar(64) comment 'nickname for addressing', fullname varchar(255) comment 'display name', homepage varchar(255) comment 'URL, cached so we dont regenerate', description text comment 'group description', @@ -421,6 +421,8 @@ create table user_group ( created datetime not null comment 'date this record was created', modified timestamp comment 'date this record was modified', + uri varchar(255) unique key comment 'universal identifier', + index user_group_nickname_idx (nickname) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci; @@ -641,3 +643,13 @@ create table conversation ( modified timestamp comment 'date this record was modified' ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; +create table local_group ( + + group_id integer primary key comment 'group represented' references user_group (id), + nickname varchar(64) unique key comment 'group represented', + + created datetime not null comment 'date this record was created', + modified timestamp comment 'date this record was modified' + +) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; + -- cgit v1.2.3-54-g00ecf From 8f42d375939116eff482b3d07a8feaa4cc29c984 Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Thu, 25 Feb 2010 09:24:29 -0500 Subject: Add 'mainpage' to User_group Add the mainpage attribute to user_group objects. --- classes/User_group.php | 10 ++++++++-- classes/statusnet.ini | 1 + db/statusnet.sql | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) (limited to 'db/statusnet.sql') diff --git a/classes/User_group.php b/classes/User_group.php index 5877ce202..a81eb8ce0 100644 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -23,6 +23,7 @@ class User_group extends Memcached_DataObject public $created; // datetime not_null default_0000-00-00%2000%3A00%3A00 public $modified; // timestamp not_null default_CURRENT_TIMESTAMP public $uri; // varchar(255) unique_key + public $mainpage; // varchar(255) /* Static get */ function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('User_group',$k,$v); } @@ -42,8 +43,13 @@ class User_group extends Memcached_DataObject { $url = null; if (Event::handle('StartUserGroupHomeUrl', array($this, &$url))) { - $url = common_local_url('showgroup', - array('nickname' => $this->nickname)); + // normally stored in mainpage, but older ones may be null + if (!empty($this->mainpage)) { + $url = $this->mainpage; + } else { + $url = common_local_url('showgroup', + array('nickname' => $this->nickname)); + } } Event::handle('EndUserGroupHomeUrl', array($this, &$url)); return $url; diff --git a/classes/statusnet.ini b/classes/statusnet.ini index 7444306f0..719dbedf5 100644 --- a/classes/statusnet.ini +++ b/classes/statusnet.ini @@ -601,6 +601,7 @@ design_id = 1 created = 142 modified = 384 uri = 2 +mainpage = 2 [user_group__keys] id = N diff --git a/db/statusnet.sql b/db/statusnet.sql index 75d060e28..4158f0167 100644 --- a/db/statusnet.sql +++ b/db/statusnet.sql @@ -422,6 +422,7 @@ create table user_group ( modified timestamp comment 'date this record was modified', uri varchar(255) unique key comment 'universal identifier', + mainpage varchar(255) comment 'page for group info to link to', index user_group_nickname_idx (nickname) -- cgit v1.2.3-54-g00ecf From e529ceee21b4fb0c18f32f7a097bce14229af42f Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 1 Mar 2010 12:20:04 -0800 Subject: Add index on post_id for file_to_post, needed for efficient lookups of files/urls attached to a given post. --- db/08to09.sql | 2 ++ db/statusnet.sql | 3 ++- 2 files changed, 4 insertions(+), 1 deletion(-) (limited to 'db/statusnet.sql') diff --git a/db/08to09.sql b/db/08to09.sql index b10e47dbc..582981614 100644 --- a/db/08to09.sql +++ b/db/08to09.sql @@ -110,3 +110,5 @@ insert into queue_item_new (frame,transport,created,claimed) alter table queue_item rename to queue_item_old; alter table queue_item_new rename to queue_item; +alter table file_to_post + add index post_id_idx (post_id); diff --git a/db/statusnet.sql b/db/statusnet.sql index 4158f0167..4aa37ce1c 100644 --- a/db/statusnet.sql +++ b/db/statusnet.sql @@ -523,7 +523,8 @@ create table file_to_post ( post_id integer comment 'id of the notice it belongs to' references notice (id), modified timestamp comment 'date this record was modified', - constraint primary key (file_id, post_id) + constraint primary key (file_id, post_id), + index post_id_idx (post_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; -- cgit v1.2.3-54-g00ecf From 946445eea945b28d50f7409815a4913f50061958 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Mon, 1 Mar 2010 13:09:20 -0800 Subject: Add index on group_index.notice_id, needed to pull list of target groups for inbox delivery. Index was present on live identi.ca database but missing from master definitions: group_inbox_notice_id_idx --- db/08to09.sql | 3 +++ db/statusnet.sql | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) (limited to 'db/statusnet.sql') diff --git a/db/08to09.sql b/db/08to09.sql index 582981614..f30572154 100644 --- a/db/08to09.sql +++ b/db/08to09.sql @@ -112,3 +112,6 @@ alter table queue_item_new rename to queue_item; alter table file_to_post add index post_id_idx (post_id); + +alter table group_inbox + add index group_inbox_notice_id_idx (notice_id); diff --git a/db/statusnet.sql b/db/statusnet.sql index 4aa37ce1c..3f95948e1 100644 --- a/db/statusnet.sql +++ b/db/statusnet.sql @@ -458,7 +458,8 @@ create table group_inbox ( created datetime not null comment 'date the notice was created', constraint primary key (group_id, notice_id), - index group_inbox_created_idx (created) + index group_inbox_created_idx (created), + index group_inbox_notice_id_idx (notice_id) ) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_bin; -- cgit v1.2.3-54-g00ecf