mirror of
https://github.com/vrana/adminer.git
synced 2025-08-07 23:27:17 +02:00
Partitioning: Compact array earlier
This commit is contained in:
@@ -91,6 +91,8 @@ if ($_POST && !process_fields($row["fields"]) && !$error) {
|
||||
unset($partitioning["partition_values"][$key]);
|
||||
}
|
||||
}
|
||||
$partitioning["partition_names"] = array_values($partitioning["partition_names"]);
|
||||
$partitioning["partition_values"] = array_values($partitioning["partition_values"]);
|
||||
if ($partitioning == $partitions_info) {
|
||||
$partitioning = array();
|
||||
}
|
||||
|
@@ -639,22 +639,19 @@ ORDER BY conkey, conname") as $row
|
||||
$status = "";
|
||||
if ($partitioning) {
|
||||
$status = " PARTITION BY $partitioning[partition_by]($partitioning[partition])";
|
||||
$partition_names = array_values($partitioning["partition_names"]);
|
||||
$partition_values = array_values($partitioning["partition_values"]);
|
||||
if ($partitioning["partition_by"] == 'HASH') {
|
||||
$partitions = +$partitioning["partitions"];
|
||||
for ($i=0; $i < $partitions; $i++) {
|
||||
$queries[] = "CREATE TABLE " . idf_escape($name . "_$i") . " PARTITION OF " . idf_escape($name) . " FOR VALUES WITH (MODULUS $partitions, REMAINDER $i)";
|
||||
}
|
||||
} else {
|
||||
foreach ($partition_names as $i => $val) {
|
||||
$value = $partition_values[$i];
|
||||
$prev = "MINVALUE";
|
||||
foreach ($partitioning["partition_names"] as $i => $val) {
|
||||
$value = $partitioning["partition_values"][$i];
|
||||
$queries[] = "CREATE TABLE " . idf_escape($name . "_$val") . " PARTITION OF " . idf_escape($name) . " FOR VALUES "
|
||||
. ($partitioning["partition_by"] == 'LIST'
|
||||
? "IN ($value)"
|
||||
: "FROM (" . ($i ? $partition_values[$i - 1] : "MINVALUE") . ") TO ($value)"
|
||||
)
|
||||
. ($partitioning["partition_by"] == 'LIST' ? "IN ($value)" : "FROM ($prev) TO ($value)")
|
||||
;
|
||||
$prev = $value;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user