Merge remote-tracking branch 'upstream/4.4' into 4.4-4.5-2014-10-01-19-08-00
[civicrm-core.git] / CRM / Core / InnoDBIndexer.php
index cce2802e5add02e4183b6f8e3fec7ddf7b0d4ec0..abe15f8edcaf14834977548b38f1c19b828144c6 100644 (file)
@@ -75,7 +75,7 @@ class CRM_Core_InnoDBIndexer {
           array('name'),
         ),
       );
-      $active = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SYSTEM_PREFERENCES_NAME, 'enable_innodb_fts', NULL, FALSE);
+      $active = CRM_Core_BAO_Setting::getItem(CRM_Core_BAO_Setting::SEARCH_PREFERENCES_NAME, 'enable_innodb_fts', NULL, FALSE);
       self::$singleton = new self($active, $indices);
     }
     return self::$singleton;
@@ -156,6 +156,13 @@ class CRM_Core_InnoDBIndexer {
    * @return array (string $indexName => string $indexName)
    */
   public function findActualFtsIndexNames($table) {
+    $mysqlVersion = CRM_Core_DAO::singleValueQuery('SELECT VERSION()');
+    if (version_compare($mysqlVersion, '5.6', '<')) {
+      // If we're not on 5.6+, then there cannot be any InnoDB FTS indices!
+      // Also: information_schema.innodb_sys_indexes is only available on 5.6+.
+      return array();
+    }
+
     // Note: this only works in MySQL 5.6,  but this whole system is intended to only work in MySQL 5.6
     $sql = "
       SELECT i.name as index_name