undo last merge
authorKurund Jalmi <kurund@civicrm.org>
Thu, 9 May 2013 00:08:37 +0000 (17:08 -0700)
committerKurund Jalmi <kurund@civicrm.org>
Thu, 9 May 2013 00:08:37 +0000 (17:08 -0700)
CRM/Core/DAO.php
CRM/Upgrade/Incremental/php/FourThree.php

index 15fa9cfd6ae56d6774fe5da20bd3575fa47181dd..6ba99787805b770aaedce9e250900e9e33391633 100644 (file)
@@ -589,17 +589,18 @@ LIKE %1
     static $show = array();
 
     if (!array_key_exists($tableName, $show)) {
-      $query = "SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME = %1";
-      $params = array( 1 => array($tableName, 'String'));
-      $dao = CRM_Core_DAO::executeQuery($query, $params);
+      $query = "SHOW CREATE TABLE $tableName";
+      $dao = CRM_Core_DAO::executeQuery($query);
 
-      while ($dao->fetch()) {
-        $show[$tableName][] = $dao->CONSTRAINT_NAME;
+      if (!$dao->fetch()) {
+        CRM_Core_Error::fatal();
       }
+
       $dao->free();
+      $show[$tableName] = $dao->Create_Table;
     }
 
-    return in_array($constraint, $show[$tableName]) ? TRUE : FALSE;
+    return preg_match("/\b$constraint\b/i", $show[$tableName]) ? TRUE : FALSE;
   }
 
   /**
index a1d1a20a8c6e0e1f8c8c903286ba44c9b5cd983a..331ada14157b94df074089418c6e286b93396a55 100644 (file)
@@ -769,8 +769,8 @@ AND TABLE_SCHEMA = %1
         $foreignKeyExists = CRM_Core_DAO::checkConstraintExists($value['tableName'], $value['fkey']);
         $fKey = $value['fkey'];
       } else {
+        $foreignKeyExists = CRM_Core_DAO::checkFKConstraintInFormat($value['tableName'], $columnName);
         $fKey = "`FK_{$value['tableName']}_{$columnName}`";
-        $foreignKeyExists = CRM_Core_DAO::checkConstraintExists($value['tableName'], $fKey);
       }
       if ($foreignKeyExists || $value['tableName'] == 'civicrm_financial_trxn') {
         if ($value['tableName'] != 'civicrm_contribution_recur' || ($value['tableName'] == 'civicrm_contribution_recur' && $dao->N)) {