diff --git a/libraries/controllers/TableStructureController.class.php b/libraries/controllers/TableStructureController.class.php index 5c8682cf44..52639afcb2 100644 --- a/libraries/controllers/TableStructureController.class.php +++ b/libraries/controllers/TableStructureController.class.php @@ -624,6 +624,11 @@ class TableStructureController extends TableController && ($partitionDetails['partition_by'] == 'RANGE' || $partitionDetails['partition_by'] == 'LIST'); + // Values are specified only for LIST and RANGE type partitions + $partitionDetails['value_enabled'] = isset($partitionDetails['partition_by']) + && ($partitionDetails['partition_by'] == 'RANGE' + || $partitionDetails['partition_by'] == 'LIST'); + $partitionDetails['partitions'] = array(); for ($i = 0; $i < intval($partitionDetails['partition_count']); $i++) { @@ -667,15 +672,6 @@ class TableStructureController extends TableController $partition['name'] = 'p' . $i; $partition['prefix'] = 'partitions[' . $i . ']'; - // Values are specified only for LIST and RANGE type partitions - $partition['value_enabled'] = isset($partitionDetails['partition_by']) - && ($partitionDetails['partition_by'] == 'RANGE' - || $partitionDetails['partition_by'] == 'LIST'); - if (! $partition['value_enabled']) { - $partition['value_type'] = ''; - $partition['value'] = ''; - } - if ($partitionDetails['subpartition_count'] > 1) { $partition['subpartition_count'] = $partitionDetails['subpartition_count']; $partition['subpartitions'] = array(); diff --git a/libraries/tbl_partition_definition.inc.php b/libraries/tbl_partition_definition.inc.php index b20668c7e6..c596bb79a6 100644 --- a/libraries/tbl_partition_definition.inc.php +++ b/libraries/tbl_partition_definition.inc.php @@ -20,6 +20,11 @@ if (!isset($partitionDetails)) { && isset($_REQUEST['partition_by']) && ($_REQUEST['partition_by'] == 'RANGE' || $_REQUEST['partition_by'] == 'LIST'); + // Values are specified only for LIST and RANGE type partitions + $partitionDetails['value_enabled'] = isset($_REQUEST['partition_by']) + && ($_REQUEST['partition_by'] == 'RANGE' + || $_REQUEST['partition_by'] == 'LIST'); + if (PMA_isValid($_REQUEST['partition_count'], 'numeric') && $_REQUEST['partition_count'] > 1 ) { // Has partitions @@ -49,14 +54,20 @@ if (!isset($partitionDetails)) { $partition['name'] = 'p' . $i; $partition['prefix'] = 'partitions[' . $i . ']'; - // Values are specified only for LIST and RANGE type partitions - $partition['value_enabled'] = isset($_REQUEST['partition_by']) - && ($_REQUEST['partition_by'] == 'RANGE' - || $_REQUEST['partition_by'] == 'LIST'); - if (! $partition['value_enabled'] || !isset($partition['value_type'])) { + if (! isset($partition['value_type'])) { // Changing from HASH/KEY to RANGE/LIST $partition['value_type'] = ''; $partition['value'] = ''; } + if (! isset($partition['engine'])) { // When removing subpartitioning + $partition['engine'] = ''; + $partition['comment'] = ''; + $partition['data_directory'] = ''; + $partition['index_directory'] = ''; + $partition['max_rows'] = ''; + $partition['min_rows'] = ''; + $partition['tablespace'] = ''; + $partition['node_group'] = ''; + } if (PMA_isValid($_REQUEST['subpartition_count'], 'numeric') && $_REQUEST['subpartition_count'] > 1 diff --git a/templates/columns_definitions/partitions.phtml b/templates/columns_definitions/partitions.phtml index ca7108cc66..96fd118258 100644 --- a/templates/columns_definitions/partitions.phtml +++ b/templates/columns_definitions/partitions.phtml @@ -69,8 +69,10 @@ $valueTypeOptions = array('', 'LESS THAN', 'LESS THAN MAXVALUE', 'IN');
| - | - 1): ?> + + | + + 1): ?> | @@ -89,25 +91,25 @@ $valueTypeOptions = array('', 'LESS THAN', 'LESS THAN MAXVALUE', 'IN'); | - | - - /> - | + ++ + + | +|
|---|---|---|---|---|---|---|---|