<?php
/*
+--------------------------------------------------------------------+
- | CiviCRM version 4.5 |
+ | CiviCRM version 4.6 |
+--------------------------------------------------------------------+
| Copyright CiviCRM LLC (c) 2004-2014 |
+--------------------------------------------------------------------+
*
* @param bool $oldValue
* @param bool $newValue
- * @param array $metadata Specification of the setting (per *.settings.php)
+ * @param array $metadata
+ * Specification of the setting (per *.settings.php).
*/
public static function onToggleFts($oldValue, $newValue, $metadata) {
$indexer = CRM_Core_InnoDBIndexer::singleton();
* Determine if an index is expected to exist
*
* @param string $table
- * @param array $fields list of field names that must be in the index
+ * @param array $fields
+ * List of field names that must be in the index.
* @return bool
*/
public function hasDeclaredIndex($table, $fields) {
* @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
}
/**
- * @param boolean $isActive
+ * @param bool $isActive
*/
public function setActive($isActive) {
$this->isActive = $isActive;