diff --git a/modules/redhen_contact/redhen_contact.install b/modules/redhen_contact/redhen_contact.install index 58d1f5b..909dd51 100644 --- a/modules/redhen_contact/redhen_contact.install +++ b/modules/redhen_contact/redhen_contact.install @@ -85,6 +85,9 @@ function redhen_contact_schema() { 'redhen_contact_type' => array(array('type', 4)), 'redhen_contact_author' => array('author_uid'), 'redhen_contact_redhen_state' => array('redhen_state'), + 'redhen_contact_revision' => array('revision_id'), + 'redhen_contact_user' => array('uid'), + 'redhen_contact_type' => array('type'), ), 'unique keys' => array( 'contact_id' => array('contact_id'), @@ -178,6 +181,7 @@ function redhen_contact_schema() { 'redhen_revision_contact_id' => array('contact_id'), 'redhen_contact_author_revision' => array('author_uid'), 'redhen_contact_redhen_state_revision' => array('redhen_state'), + 'redhen_contact_revision_user' => array('uid'), ), 'primary key' => array('revision_id'), 'foreign keys' => array( @@ -295,6 +299,8 @@ function redhen_contact_schema() { ), 'indexes' => array( 'redhen_contact_status' => array('contact_id', 'status'), + 'redhen_contact_user_contact' => array('contact_id'), + 'redhen_contact_user_user' => array('uid'), ), 'foreign keys' => array( 'redhen_contact_user_contact' => array( @@ -316,6 +322,19 @@ function redhen_contact_schema() { } /** + * Create indexes for foreign keys. + */ +function redhen_contact_update_7002() { + db_add_index('redhen_contact', 'redhen_contact_revision', array('revision_id')); + db_add_index('redhen_contact', 'redhen_contact_author', array('author_uid')); + db_add_index('redhen_contact', 'redhen_contact_user', array('uid')); + db_add_index('redhen_contact', 'redhen_contact_type', array('type')); + db_add_index('redhen_contact_revision', 'redhen_contact_revision_user', array('uid')); + db_add_index('redhen_contact_user', 'redhen_contact_user_contact', array('contact_id')); + db_add_index('redhen_contact_user', 'redhen_contact_user_user', array('uid')); +} + +/** * Adding middle name field. */ function redhen_contact_update_7001() { diff --git a/modules/redhen_engagement/redhen_engagement.install b/modules/redhen_engagement/redhen_engagement.install index 6820afd..32240b8 100644 --- a/modules/redhen_engagement/redhen_engagement.install +++ b/modules/redhen_engagement/redhen_engagement.install @@ -75,6 +75,9 @@ function redhen_engagement_schema() { ), 'indexes' => array( 'engagement_type' => array('type'), + 'engagement_redhen_contact' => array('contact_id'), + 'engagement_author' => array('author_uid'), + 'engagement_engagement_score' => array('engagement_score'), ), 'foreign keys' => array( 'engagement_redhen_contact' => array( @@ -203,6 +206,7 @@ function redhen_engagement_update_7100(&$sandbox) { * Set the engagement_score value for existing contacts. */ function redhen_engagement_update_7101(&$sandbox) { + db_add_index('redhen_engagement', 'engagement_redhen_contact', array('contact_id')); $field = array( 'description' => 'The total engagement score for a contact.', 'type' => 'int', @@ -214,3 +218,15 @@ function redhen_engagement_update_7101(&$sandbox) { $sql = 'UPDATE redhen_contact rc SET engagement_score = (SELECT SUM(score) FROM redhen_engagement re JOIN redhen_engagement_score res on re.engagement_score = res.name WHERE re.contact_id = rc.contact_id)'; db_query($sql); } + +/** + * Create indexes for foreign keys. + */ +function redhen_engagement_update_7102(&$sandbox) { + if (!db_index_exists('redhen_engagement', 'engagement_redhen_contact')) { + db_add_index('redhen_engagement', 'engagement_redhen_contact', array('contact_id')); + } + db_add_index('redhen_engagement', 'engagement_author', array('author_uid')); + db_add_index('redhen_engagement', 'engagement_engagement_score', array('engagement_score')); +} + \ No newline at end of file diff --git a/modules/redhen_fields/redhen_fields.install b/modules/redhen_fields/redhen_fields.install index 9aeab5a..403c502 100644 --- a/modules/redhen_fields/redhen_fields.install +++ b/modules/redhen_fields/redhen_fields.install @@ -9,6 +9,8 @@ * Implements hook_field_schema(). */ function redhen_fields_field_schema($field) { + $columns = array(); + $indexes = array(); switch ($field['type']) { case 'redhen_email': $columns = array( @@ -28,6 +30,9 @@ function redhen_fields_field_schema($field) { 'default' => 0, ), ); + $indexes = array( + 'redhen_email_address' => array('value'), + ); break; } $columns += array( @@ -44,11 +49,24 @@ function redhen_fields_field_schema($field) { ); return array( 'columns' => $columns, - 'indexes' => array(), + 'indexes' => $indexes, ); } /** + * Add index for email addresses. + */ +function redhen_fields_update_7100(&$sandbox) { + $fields = field_read_fields(array('type' => 'redhen_email')); + foreach ($fields as $field_name => $field) { + if ($field['storage']['type'] == 'field_sql_storage') { + db_add_index("field_data_$field_name", 'redhen_email_address', array("{$field_name}_value")); + db_add_index("field_revision_$field_name", 'redhen_email_address', array("{$field_name}_value")); + } + } +} + +/** * Implements hook_install(). */ function redhen_fields_install() { diff --git a/modules/redhen_note/redhen_note.install b/modules/redhen_note/redhen_note.install index fb30a13..fd79617 100644 --- a/modules/redhen_note/redhen_note.install +++ b/modules/redhen_note/redhen_note.install @@ -61,6 +61,7 @@ function redhen_note_schema() { 'redhen_note_updated' => array('updated'), 'redhen_note_created' => array('created'), 'redhen_note_type' => array(array('type', 4)), + 'redhen_note_author' => array('author_uid'), ), 'unique keys' => array( 'note_id' => array('note_id'), @@ -152,3 +153,10 @@ function redhen_note_uninstall() { field_delete_instance('redhen_note_type', TRUE); taxonomy_vocabulary_delete(taxonomy_vocabulary_machine_name_load('note_type')->vid); } + +/** + * Add indexes for foreign keys. + */ +function redhen_note_update_7100(&$sandbox) { + db_add_index('redhen_note', 'redhen_note_author', array('author_uid')); +} diff --git a/modules/redhen_org/redhen_org.install b/modules/redhen_org/redhen_org.install index be016e0..5ddc2b8 100644 --- a/modules/redhen_org/redhen_org.install +++ b/modules/redhen_org/redhen_org.install @@ -75,6 +75,9 @@ function redhen_org_schema() { 'redhen_org_created' => array('created'), 'redhen_org_type' => array(array('type', 4)), 'redhen_org_redhen_state' => array('redhen_state'), + 'redhen_org_revision' => array('revision_id'), + 'redhen_org_author' => array('author_uid'), + 'redhen_org_primary_contact_id' => array('primary_contact_id'), ), 'unique keys' => array( 'org_id' => array('org_id'), @@ -157,6 +160,9 @@ function redhen_org_schema() { 'indexes' => array( 'redhen_org_updated_revision' => array('updated'), 'redhen_org_redhen_state_revision' => array('redhen_state'), + 'revision_redhen_org' => array('org_id'), + 'redhen_org_revision_author' => array('author_uid'), + 'redhen_org_revision_primary_contact_id' => array('primary_contact_id'), ), 'foreign keys' => array( 'revision_redhen_org' => array( @@ -377,3 +383,15 @@ function redhen_org_update_7002() { 'default' => 0, )); } + +/** + * Add indexes for foreign keys. + */ +function redhen_org_update_7003() { + db_add_index('redhen_org', 'redhen_org_revision', array('revision_id')); + db_add_index('redhen_org', 'redhen_org_author', array('author_uid')); + db_add_index('redhen_org', 'redhen_org_primary_contact_id', array('primary_contact_id')); + db_add_index('redhen_org_revision', 'revision_redhen_org', array('org_id')); + db_add_index('redhen_org_revision', 'redhen_org_revision_author', array('author_uid')); + db_add_index('redhen_org_revision', 'redhen_org_revision_primary_contact_id', array('primary_contact_id')); +}