diff --git a/libraries/classes/Controllers/Table/PartitionController.php b/libraries/classes/Controllers/Table/PartitionController.php index 6afc3f556cf9..9f178c1702c3 100644 --- a/libraries/classes/Controllers/Table/PartitionController.php +++ b/libraries/classes/Controllers/Table/PartitionController.php @@ -78,23 +78,32 @@ public function check(): void public function drop(): void { - global $containerBuilder, $sql_query; - $partitionName = $_POST['partition_name'] ?? ''; if (strlen($partitionName) === 0) { return; } - $sql_query = sprintf( - 'ALTER TABLE %s DROP PARTITION %s;', - Util::backquote($this->table), - Util::backquote($partitionName) - ); + [$result, $query] = $this->model->drop($this->db, $this->table, $partitionName); + + if ($result) { + $message = Generator::getMessage( + __('Your SQL query has been executed successfully.'), + $query, + 'success' + ); + } else { + $message = Generator::getMessage( + __('Error'), + $query, + 'error' + ); + } - /** @var SqlController $controller */ - $controller = $containerBuilder->get(SqlController::class); - $controller->index(); + $this->render('table/partition/drop', [ + 'partition_name' => $partitionName, + 'message' => $message, + ]); } public function optimize(): void diff --git a/libraries/classes/Table/Partition.php b/libraries/classes/Table/Partition.php index c9f9912c1816..2edb571f40a8 100644 --- a/libraries/classes/Table/Partition.php +++ b/libraries/classes/Table/Partition.php @@ -55,4 +55,18 @@ public function check(string $db, string $table, string $partition): array return [$rows, $query]; } + + public function drop(string $db, string $table, string $partition): array + { + $query = sprintf( + 'ALTER TABLE %s DROP PARTITION %s;', + Util::backquote($table), + Util::backquote($partition) + ); + + $this->dbi->selectDb($db); + $result = $this->dbi->tryQuery($query); + + return [(bool) $result, $query]; + } } diff --git a/templates/table/partition/drop.twig b/templates/table/partition/drop.twig new file mode 100644 index 000000000000..c93a6470baa2 --- /dev/null +++ b/templates/table/partition/drop.twig @@ -0,0 +1,5 @@ +
+

{% trans 'Drop partition' %}

+ + {{ message|raw }} +