From 893a39a264941057dbeebb0e080ffb3be120a630 Mon Sep 17 00:00:00 2001 From: Tim Otten Date: Wed, 13 May 2015 14:31:55 -0700 Subject: [PATCH] CRM-16251 - Change DROP TABLE to DROP TEMPORARY TABLE If a table was created as a temporary table, then it should be dropped as a temporary table. MySQL will accept DROP TABLE on temporary tables, but doing so will break transactions. --- CRM/Campaign/BAO/Query.php | 2 +- CRM/Campaign/Form/Task/Interview.php | 2 +- CRM/Contact/Import/Form/DataSource.php | 2 +- CRM/Report/Form/Member/ContributionDetail.php | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CRM/Campaign/BAO/Query.php b/CRM/Campaign/BAO/Query.php index 498a035a98..a6e7b2f090 100755 --- a/CRM/Campaign/BAO/Query.php +++ b/CRM/Campaign/BAO/Query.php @@ -527,7 +527,7 @@ INNER JOIN civicrm_custom_group grp on fld.custom_group_id = grp.id //create temporary table to store voter ids. $tempTableName = CRM_Core_DAO::createTempTableName('civicrm_survey_respondent'); - CRM_Core_DAO::executeQuery("DROP TABLE IF EXISTS {$tempTableName}"); + CRM_Core_DAO::executeQuery("DROP TEMPORARY TABLE IF EXISTS {$tempTableName}"); $query = " CREATE TEMPORARY TABLE {$tempTableName} ( diff --git a/CRM/Campaign/Form/Task/Interview.php b/CRM/Campaign/Form/Task/Interview.php index cfee48b717..42644658fb 100755 --- a/CRM/Campaign/Form/Task/Interview.php +++ b/CRM/Campaign/Form/Task/Interview.php @@ -625,7 +625,7 @@ WHERE {$clause} //create temporary table to store voter ids. $tempTableName = CRM_Core_DAO::createTempTableName('civicrm_survey_respondent'); - CRM_Core_DAO::executeQuery("DROP TABLE IF EXISTS {$tempTableName}"); + CRM_Core_DAO::executeQuery("DROP TEMPORARY TABLE IF EXISTS {$tempTableName}"); $query = " CREATE TEMPORARY TABLE {$tempTableName} ( id int unsigned NOT NULL AUTO_INCREMENT, diff --git a/CRM/Contact/Import/Form/DataSource.php b/CRM/Contact/Import/Form/DataSource.php index 455cc344ab..8c2eed2308 100644 --- a/CRM/Contact/Import/Form/DataSource.php +++ b/CRM/Contact/Import/Form/DataSource.php @@ -59,7 +59,7 @@ class CRM_Contact_Import_Form_DataSource extends CRM_Core_Form { $daoTestPrivilege = new CRM_Core_DAO(); $daoTestPrivilege->query("CREATE TEMPORARY TABLE import_job_permission_one(test int) ENGINE=InnoDB"); $daoTestPrivilege->query("CREATE TEMPORARY TABLE import_job_permission_two(test int) ENGINE=InnoDB"); - $daoTestPrivilege->query("DROP TABLE IF EXISTS import_job_permission_one, import_job_permission_two"); + $daoTestPrivilege->query("DROP TEMPORARY TABLE IF EXISTS import_job_permission_one, import_job_permission_two"); unset($errorScope); if ($daoTestPrivilege->_lastError) { diff --git a/CRM/Report/Form/Member/ContributionDetail.php b/CRM/Report/Form/Member/ContributionDetail.php index f9a483dba9..9ecc911e5b 100644 --- a/CRM/Report/Form/Member/ContributionDetail.php +++ b/CRM/Report/Form/Member/ContributionDetail.php @@ -534,7 +534,7 @@ class CRM_Report_Form_Member_ContributionDetail extends CRM_Report_Form { */ public function tempTable($applyLimit = TRUE) { // create temp table with contact ids,contribtuion id,membership id - $dropTempTable = 'DROP TABLE IF EXISTS civireport_membership_contribution_detail'; + $dropTempTable = 'DROP TEMPORARY TABLE IF EXISTS civireport_membership_contribution_detail'; CRM_Core_DAO::executeQuery($dropTempTable); $sql = 'CREATE TEMPORARY TABLE civireport_membership_contribution_detail -- 2.25.1