public static function getPartitions($db, $table)
{
if (Partition::havePartitioning()) {
$result = $GLOBALS['dbi']->fetchResult("SELECT * FROM `information_schema`.`PARTITIONS`" . " WHERE `TABLE_SCHEMA` = '" . $GLOBALS['dbi']->escapeString($db) . "' AND `TABLE_NAME` = '" . $GLOBALS['dbi']->escapeString($table) . "'");
if ($result) {
$partitionMap = array();
foreach ($result as $row) {
if (isset($partitionMap[$row['PARTITION_NAME']])) {
$partition = $partitionMap[$row['PARTITION_NAME']];
} else {
$partition = new Partition($row);
$partitionMap[$row['PARTITION_NAME']] = $partition;
}
if (!empty($row['SUBPARTITION_NAME'])) {
$parentPartition = $partition;
$partition = new SubPartition($row);
$parentPartition->addSubPartition($partition);
}
}
return array_values($partitionMap);
}
return array();
} else {
return array();
}
}