From 56bbb442187248e36de942cd640a3bb5eb61dc47 Mon Sep 17 00:00:00 2001 From: eileenmcnaugton Date: Fri, 14 Aug 2015 13:27:15 +1200 Subject: [PATCH] CRM-17020 remove unindexed join from activity report : --- CRM/Report/Form/Activity.php | 67 +++--------------------------------- 1 file changed, 5 insertions(+), 62 deletions(-) diff --git a/CRM/Report/Form/Activity.php b/CRM/Report/Form/Activity.php index 9f1e6e0d3b..1fc00799a2 100644 --- a/CRM/Report/Form/Activity.php +++ b/CRM/Report/Form/Activity.php @@ -236,71 +236,18 @@ class CRM_Report_Form_Activity extends CRM_Report_Form { 'activity_type_id' => array( 'title' => ts('Activity Type'), 'default_weight' => '2', - 'dbAlias' => "option_value_civireport", + 'dbAlias' => 'field(civicrm_activity_activity_type_id, ' . implode(', ', array_keys($this->activityTypes)) . ')', ), ), 'grouping' => 'activity-fields', 'alias' => 'activity', ), + // Hack to get $this->_alias populated for the table. 'civicrm_activity_contact' => array( 'dao' => 'CRM_Activity_DAO_ActivityContact', - 'fields' => array(// so we have $this->_alias populated - ), - ), - 'civicrm_option_value' => array( - 'dao' => 'CRM_Core_DAO_OptionValue', - 'fields' => array(// so we have $this->_alias populated - ), - 'status_id' => - array( - 'title' => ts('Activity Status'), - 'default' => TRUE, - 'type' => CRM_Utils_Type::T_STRING, - ), - 'duration' => - array( - 'title' => ts('Duration'), - 'type' => CRM_Utils_Type::T_INT, - ), - 'location' => - array( - 'title' => ts('Location'), - 'type' => CRM_Utils_Type::T_STRING, - ), - 'details' => array( - 'title' => ts('Activity Details'), - ), - ), - 'filters' => array( - 'activity_date_time' => array( - 'default' => 'this.month', - 'operatorType' => CRM_Report_Form::OP_DATE, - ), - 'activity_subject' => - array('title' => ts('Activity Subject')), - 'location' => - array( - 'title' => ts('Location'), - 'type' => CRM_Utils_Type::T_TEXT, - ), - 'activity_type_id' => - array( - 'title' => ts('Activity Type'), - 'operatorType' => CRM_Report_Form::OP_MULTISELECT, - 'options' => $this->activityTypes, - ), - 'status_id' => - array( - 'title' => ts('Activity Status'), - 'operatorType' => CRM_Report_Form::OP_MULTISELECT, - 'options' => CRM_Core_PseudoConstant::activityStatus(), - ), - 'details' => array( - 'title' => ts('Activity Details'), - 'type' => CRM_Utils_Type::T_TEXT, + 'fields' => array( ), - ), - ) + $this->addressFields(TRUE); + )) + $this->addressFields(TRUE); if ($campaignEnabled) { // Add display column and filter for Survey Results, Campaign and Engagement Index if CiviCampaign is enabled @@ -443,8 +390,6 @@ class CRM_Report_Form_Activity extends CRM_Report_Form { $this->_selectAliases[] = $orderByFld['dbAlias']; $this->_selectClauses[] = "{$fldInfo['dbAlias']} as {$orderByFld['dbAlias']}"; } - $this->_selectAliases[] = $this->_aliases['civicrm_option_value']; - $this->_selectClauses[] = "{$this->_aliases['civicrm_option_value']}.label as {$this->_aliases['civicrm_option_value']}"; $this->_selectAliases = array_unique($this->_selectAliases); $this->_selectClauses = array_unique($this->_selectClauses); } @@ -518,9 +463,7 @@ class CRM_Report_Form_Activity extends CRM_Report_Form { } $this->_aliases['civicrm_contact'] = 'civicrm_contact_source'; } - $this->_from .= " INNER JOIN civicrm_option_value {$this->_aliases['civicrm_option_value']} - ON {$this->_aliases['civicrm_option_value']}.option_group_id = {$activityTypeId} - AND {$this->_aliases['civicrm_option_value']}.value = {$this->_aliases['civicrm_activity']}.activity_type_id"; + $this->addAddressFromClause(); } -- 2.25.1