CRM-14765 - FullText - Split prepareQueries / runQueries
authorTim Otten <totten@civicrm.org>
Tue, 10 Jun 2014 02:30:45 +0000 (19:30 -0700)
committerTim Otten <totten@civicrm.org>
Tue, 10 Jun 2014 02:52:18 +0000 (19:52 -0700)
Without this patch, changing the signature of runQueries() requires changing
the every fillTempTables() *and* every fillFooIDs().

With this patch, we can change the signature of runQueries() without changing
evey fillFooID() function.

CRM/Contact/Form/Search/Custom/FullText/Activity.php
CRM/Contact/Form/Search/Custom/FullText/Case.php
CRM/Contact/Form/Search/Custom/FullText/Contact.php
CRM/Contact/Form/Search/Custom/FullText/Contribution.php
CRM/Contact/Form/Search/Custom/FullText/Membership.php
CRM/Contact/Form/Search/Custom/FullText/Participant.php

index 7b981c46ba382b90f92e562944da6cdb31ca6eeb..5d3832974049baac708b3b0ecc6cec877c24a1e4 100644 (file)
@@ -46,16 +46,18 @@ class CRM_Contact_Form_Search_Custom_FullText_Activity extends CRM_Contact_Form_
    * {@inheritdoc}
    */
   public function fillTempTable($queryText, $entityIDTableName, $toTable, $queryLimit, $detailLimit) {
-    $count = $this->fillActivityIDs($queryText, $entityIDTableName, $queryLimit);
+    $queries = $this->prepareQueries($queryText, $entityIDTableName);
+    $result = $this->runQueries($queryText, $queries, $entityIDTableName, $queryLimit);
     $this->moveActivityIDs($entityIDTableName, $toTable, $detailLimit);
-    return $count;
+    return $result;
   }
 
   /**
    * @param string $queryText
-   * @return int the total number of matches
+   * @param string $entityIDTableName
+   * @return array list tables/queries (for runQueries)
    */
-  function fillActivityIDs($queryText, $entityIDTableName, $limit) {
+  function prepareQueries($queryText, $entityIDTableName) {
     // Note: For available full-text indices, see CRM_Core_InnoDBIndexer
 
     $contactSQL = array();
@@ -105,7 +107,7 @@ AND    (ca.is_deleted = 0 OR ca.is_deleted IS NULL)
     );
 
     $this->fillCustomInfo($tables, "( 'Activity' )");
-    return $this->runQueries($queryText, $tables, $entityIDTableName, $limit);
+    return $tables;;
   }
 
   public function moveActivityIDs($fromTable, $toTable, $limit) {
index 98fc5bdeca547f2df59fcc885085a8d560ef21af..ef2f37009fa1d7a5dc94a25f796ec2f009d956f4 100644 (file)
@@ -47,16 +47,18 @@ class CRM_Contact_Form_Search_Custom_FullText_Case extends CRM_Contact_Form_Sear
    * {@inheritdoc}
    */
   public function fillTempTable($queryText, $entityIDTableName, $toTable, $queryLimit, $detailLimit) {
-    $count = $this->fillCaseIDs($queryText, $entityIDTableName, $queryLimit);
+    $queries = $this->prepareQueries($queryText, $entityIDTableName);
+    $result = $this->runQueries($queryText, $queries, $entityIDTableName, $queryLimit);
     $this->moveCaseIDs($entityIDTableName, $toTable, $detailLimit);
-    return $count;
+    return $result;
   }
 
   /**
    * @param string $queryText
-   * @return int the total number of matches
+   * @param string $entityIDTableName
+   * @return array list tables/queries (for runQueries)
    */
-  function fillCaseIDs($queryText, $entityIDTableName, $limit) {
+  function prepareQueries($queryText, $entityIDTableName) {
     // Note: For available full-text indices, see CRM_Core_InnoDBIndexer
 
     $contactSQL = array();
@@ -96,7 +98,7 @@ GROUP BY   et.entity_id
       'sql' => $contactSQL,
     );
 
-    return $this->runQueries($queryText, $tables, $entityIDTableName, $limit);
+    return $tables;
   }
 
   public function moveCaseIDs($fromTable, $toTable, $limit) {
index 0eb806b02611a82c9a4708420ca986e499be0c0c..b484ec2052614ee50cd3fd6843d443a45d4375a8 100644 (file)
@@ -46,16 +46,18 @@ class CRM_Contact_Form_Search_Custom_FullText_Contact extends CRM_Contact_Form_S
    * {@inheritdoc}
    */
   public function fillTempTable($queryText, $entityIDTableName, $toTable, $queryLimit, $detailLimit) {
-    $count = $this->fillContactIDs($queryText, $entityIDTableName, $queryLimit);
+    $queries = $this->prepareQueries($queryText, $entityIDTableName);
+    $result = $this->runQueries($queryText, $queries, $entityIDTableName, $queryLimit);
     $this->moveContactIDs($entityIDTableName, $toTable, $detailLimit);
-    return $count;
+    return $result;
   }
 
   /**
    * @param string $queryText
-   * @return int the total number of matches
+   * @param string $entityIDTableName
+   * @return array list tables/queries (for runQueries)
    */
-  function fillContactIDs($queryText, $entityIDTableName, $limit) {
+  function prepareQueries($queryText, $entityIDTableName) {
     // Note: For available full-text indices, see CRM_Core_InnoDBIndexer
 
     $contactSQL = array();
@@ -117,7 +119,7 @@ GROUP BY   et.entity_id
       "( 'Contact', 'Individual', 'Organization', 'Household' )"
     );
 
-    return $this->runQueries($queryText, $tables, $entityIDTableName, $limit);
+    return $tables;
   }
 
   public function moveContactIDs($fromTable, $toTable, $limit) {
index b4fad6dd7e8a3e0c27a30266ea9434a937906f05..534f3e3e75965ee1d9a64f1797331bc3c466bbbe 100644 (file)
@@ -48,18 +48,20 @@ class CRM_Contact_Form_Search_Custom_FullText_Contribution extends CRM_Contact_F
    * {@inheritdoc}
    */
   public function fillTempTable($queryText, $entityIDTableName, $toTable, $queryLimit, $detailLimit) {
-    $count = $this->fillContributionIDs($queryText, $entityIDTableName, $queryLimit);
+    $queries = $this->prepareQueries($queryText, $entityIDTableName);
+    $result = $this->runQueries($queryText, $queries, $entityIDTableName, $queryLimit);
     $this->moveContributionIDs($entityIDTableName, $toTable, $detailLimit);
-    return $count;
+    return $result;
   }
 
   /**
    * get contribution ids in entity tables.
    *
    * @param string $queryText
-   * @return int the total number of matches
+   * @param string $entityIDTableName
+   * @return array list tables/queries (for runQueries)
    */
-  function fillContributionIDs($queryText, $entityIDTableName, $limit) {
+  function prepareQueries($queryText, $entityIDTableName) {
     // Note: For available full-text indices, see CRM_Core_InnoDBIndexer
 
     $contactSQL = array();
@@ -94,7 +96,7 @@ WHERE      ({$this->matchText('civicrm_contact c', array('sort_name', 'display_n
 
     // get the custom data info
     $this->fillCustomInfo($tables, "( 'Contribution' )");
-    return $this->runQueries($queryText, $tables, $entityIDTableName, $limit);
+    return $tables;
   }
 
   public function moveContributionIDs($fromTable, $toTable, $limit) {
index 2ec54eeb5d8d957b56c9563894c1cf5b4561a6ac..9be1518ae1a1fc6537b92d4f81227bb36fdcb0d1 100644 (file)
@@ -48,18 +48,20 @@ class CRM_Contact_Form_Search_Custom_FullText_Membership extends CRM_Contact_For
    * {@inheritdoc}
    */
   public function fillTempTable($queryText, $entityIDTableName, $toTable, $queryLimit, $detailLimit) {
-    $count = $this->fillMembershipIDs($queryText, $entityIDTableName, $queryLimit);
+    $queries = $this->prepareQueries($queryText, $entityIDTableName);
+    $result = $this->runQueries($queryText, $queries, $entityIDTableName, $queryLimit);
     $this->moveMembershipIDs($entityIDTableName, $toTable, $detailLimit);
-    return $count;
+    return $result;
   }
 
   /**
    * get membership ids in entity tables.
    *
    * @param string $queryText
-   * @return int the total number of matches
+   * @param string $entityIDTableName
+   * @return array list tables/queries (for runQueries)
    */
-  function fillMembershipIDs($queryText, $entityIDTableName, $limit) {
+  function prepareQueries($queryText, $entityIDTableName) {
     // Note: For available full-text indices, see CRM_Core_InnoDBIndexer
 
     $contactSQL = array();
@@ -79,7 +81,7 @@ WHERE      ({$this->matchText('civicrm_contact c', array('sort_name', 'display_n
 
     // get the custom data info
     $this->fillCustomInfo($tables, "( 'Membership' )");
-    return $this->runQueries($queryText, $tables, $entityIDTableName, $limit);
+    return $tables;
   }
 
   public function moveMembershipIDs($fromTable, $toTable, $limit) {
index 5af52f39bbae87bb466386c5096e0bb565bb5920..79b7f575dca94d7381534d81273be2eb16450d0d 100644 (file)
@@ -48,18 +48,20 @@ class CRM_Contact_Form_Search_Custom_FullText_Participant extends CRM_Contact_Fo
    * {@inheritdoc}
    */
   public function fillTempTable($queryText, $entityIDTableName, $toTable, $queryLimit, $detailLimit) {
-    $count = $this->fillParticipantIDs($queryText, $entityIDTableName, $queryLimit);
+    $queries = $this->prepareQueries($queryText, $entityIDTableName);
+    $result = $this->runQueries($queryText, $queries, $entityIDTableName, $queryLimit);
     $this->moveParticipantIDs($entityIDTableName, $toTable, $detailLimit);
-    return $count;
+    return $result;
   }
 
   /**
    * get participant ids in entity tables.
    *
    * @param string $queryText
-   * @return int the total number of matches
+   * @param string $entityIDTableName
+   * @return array list tables/queries (for runQueries)
    */
-  function fillParticipantIDs($queryText, $entityIDTableName, $limit) {
+  function prepareQueries($queryText, $entityIDTableName) {
     // Note: For available full-text indices, see CRM_Core_InnoDBIndexer
 
     $contactSQL = array();
@@ -91,7 +93,7 @@ WHERE      ({$this->matchText('civicrm_contact c', array('sort_name', 'display_n
 
     // get the custom data info
     $this->fillCustomInfo($tables, "( 'Participant' )");
-    return $this->runQueries($queryText, $tables, $entityIDTableName, $limit);
+    return $tables;
   }
 
   public function moveParticipantIDs($fromTable, $toTable, $limit) {