Create indexes for database tables during installation process

This commit is contained in:
Fedor A. Fetisov 2011-04-15 17:50:51 +04:00
parent e34b0d1c0d
commit f3367271f5

View File

@ -129,6 +129,15 @@ $dbtables = array(
), ),
); );
$dbtables_indexes = array(
"${mysqlprefix}chatmessage" => array(
"idx_agentid" => "agentid"
),
"${mysqlprefix}chatsitevisitor" => array(
"threadid" => "threadid"
)
);
$memtables = array(); $memtables = array();
$dbtables_can_update = array( $dbtables_can_update = array(
@ -157,7 +166,7 @@ function show_install_err($text)
function create_table($id, $link) function create_table($id, $link)
{ {
global $dbtables, $memtables, $dbencoding, $mysqlprefix; global $dbtables, $dbtables_indexes, $memtables, $dbencoding, $mysqlprefix;
if (!isset($dbtables[$id])) { if (!isset($dbtables[$id])) {
show_install_err("Unknown table: $id, " . mysql_error($link)); show_install_err("Unknown table: $id, " . mysql_error($link));
@ -170,6 +179,12 @@ function create_table($id, $link)
$query .= " $k $v,\n"; $query .= " $k $v,\n";
} }
if (isset($dbtables_indexes[$id])) {
foreach ($dbtables_indexes[$id] as $k => $v) {
$query .= " INDEX $k ($v),\n";
}
}
$query = preg_replace("/,\n$/", "", $query); $query = preg_replace("/,\n$/", "", $query);
$query .= ") charset $dbencoding"; $query .= ") charset $dbencoding";
if (in_array($id, $memtables)) { if (in_array($id, $memtables)) {