BUGFIX Fixed fulltext not being dropped before re-adding it in MSSQLDatabase::getIndexSqlDefinition()

This commit is contained in:
Sean Harvey 2010-07-18 23:14:51 +00:00
parent c44f5ca9ed
commit 27c3997061

View File

@ -722,7 +722,7 @@ class MSSQLDatabase extends SS_Database {
*/
protected function getIndexSqlDefinition($tableName, $indexName, $indexSpec) {
$index = 'ix_' . $tableName . '_' . $indexName;
$drop = "IF EXISTS (SELECT name FROM sys.indexes WHERE name = '$index') DROP INDEX $index ON \"" . $tableName . "\";";
$drop = "IF EXISTS (SELECT name FROM sys.indexes WHERE name = '$index') DROP INDEX $index ON \"" . $tableName . "\";";
if(!is_array($indexSpec)) {
$indexSpec=trim($indexSpec, '()');
@ -736,10 +736,14 @@ class MSSQLDatabase extends SS_Database {
if($this->fullTextEnabled()) {
//Enable full text search.
$this->createFullTextCatalog();
$primary_key = $this->getPrimaryKey($tableName);
$primary_key=$this->getPrimaryKey($tableName);
return "CREATE FULLTEXT INDEX ON \"$tableName\" ({$indexSpec['value']}) KEY INDEX $primary_key WITH CHANGE_TRACKING AUTO;";
$query = '';
if($this->fullTextIndexExists($tableName)) {
$query .= "\nDROP FULLTEXT INDEX ON \"$tableName\";";
}
$query .= "CREATE FULLTEXT INDEX ON \"$tableName\" ({$indexSpec['value']}) KEY INDEX $primary_key WITH CHANGE_TRACKING AUTO;";
return $query;
}
}