mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-20 09:08:42 +02:00
Fix multiple TagSet creation in the same object
This commit is contained in:
@@ -4969,6 +4969,7 @@ abstract class MetaModel
|
||||
$aCreateTableItems = array(); // array of <table> => array of <create definition>
|
||||
$aAlterTableMetaData = array();
|
||||
$aAlterTableItems = array(); // array of <table> => <alter specification>
|
||||
$aPostTableAlteration = array(); // array of <table> => post alteration queries
|
||||
|
||||
foreach(self::GetClasses() as $sClass)
|
||||
{
|
||||
@@ -5115,9 +5116,14 @@ abstract class MetaModel
|
||||
$sColumns .= ' ('.$aLength[0].')';
|
||||
}
|
||||
}
|
||||
|
||||
$aSugFix[$sClass][$sAttCode][] = "ALTER TABLE `$sTable` ADD $sIndexType `$sIndexName` ($sColumns)";
|
||||
if ($bTableToCreate)
|
||||
$sSugFix = "ALTER TABLE `$sTable` ADD $sIndexType `$sIndexName` ($sColumns)";
|
||||
$aSugFix[$sClass][$sAttCode][] = $sSugFix;
|
||||
if ($bFullTextIndexNeeded)
|
||||
{
|
||||
// MySQL does not support multi fulltext index creation in a single query (mysql_errno = 1795)
|
||||
$aPostTableAlteration[$sTable][] = $sSugFix;
|
||||
}
|
||||
elseif ($bTableToCreate)
|
||||
{
|
||||
$aCreateTableItems[$sTable][] = "$sIndexType `$sIndexName` ($sColumns)";
|
||||
}
|
||||
@@ -5191,7 +5197,15 @@ abstract class MetaModel
|
||||
if (!empty($sSugFixAfterChange))
|
||||
{
|
||||
$aSugFix[$sClass][$sAttCode][] = $sSugFixAfterChange;
|
||||
$aAlterTableItems[$sTable][] = $sAlterTableItemsAfterChange;
|
||||
if ($bFullTextIndexNeeded)
|
||||
{
|
||||
// MySQL does not support multi fulltext index creation in a single query (mysql_errno = 1795)
|
||||
$aPostTableAlteration[$sTable][] = $sSugFixAfterChange;
|
||||
}
|
||||
else
|
||||
{
|
||||
$aAlterTableItems[$sTable][] = $sAlterTableItemsAfterChange;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5315,6 +5329,10 @@ abstract class MetaModel
|
||||
$sChangeList = implode(', ', $aChangeList);
|
||||
$aCondensedQueries[] = "ALTER TABLE `$sTable` $sChangeList";
|
||||
}
|
||||
foreach($aPostTableAlteration as $sTable => $aChangeList)
|
||||
{
|
||||
$aCondensedQueries = array_merge($aCondensedQueries, $aChangeList);
|
||||
}
|
||||
|
||||
return array($aErrors, $aSugFix, $aCondensedQueries);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user