From 4ee25bee296fa7d55ef9d9d2c27718ce6cdd0fd7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Maur=C3=ADcio=20Meneghini=20Fauth?= Date: Wed, 17 Jun 2020 20:34:01 -0300 Subject: [PATCH] Extract analyze action from db structure index method MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Related to #16173. Signed-off-by: MaurĂ­cio Meneghini Fauth --- js/database/structure.js | 4 +- .../Controllers/Database/StructureController.php | 58 +++++++++++++++++++--- libraries/routes.php | 1 + 3 files changed, 55 insertions(+), 8 deletions(-) diff --git a/js/database/structure.js b/js/database/structure.js index 63691ec463..4a6119aa5d 100644 --- a/js/database/structure.js +++ b/js/database/structure.js @@ -297,7 +297,9 @@ AJAX.registerOnload('database/structure.js', function () { return; } - if (action === 'sync_unique_columns_central_list') { + if (action === 'analyze_tbl') { + url = 'index.php?route=/database/structure/analyze-table'; + } else if (action === 'sync_unique_columns_central_list') { url = 'index.php?route=/database/structure/central-columns-add'; } else if (action === 'delete_unique_columns_central_list') { url = 'index.php?route=/database/structure/central-columns-remove'; diff --git a/libraries/classes/Controllers/Database/StructureController.php b/libraries/classes/Controllers/Database/StructureController.php index 68bc124102..7679fb64b1 100644 --- a/libraries/classes/Controllers/Database/StructureController.php +++ b/libraries/classes/Controllers/Database/StructureController.php @@ -404,7 +404,6 @@ class StructureController extends AbstractController switch ($submit_mult) { case 'optimize_tbl': case 'repair_tbl': - case 'analyze_tbl': case 'checksum_tbl': $query_type = $submit_mult; unset($submit_mult); @@ -476,12 +475,6 @@ class StructureController extends AbstractController $execute_query_later = true; break; - case 'analyze_tbl': - $sql_query .= (empty($sql_query) ? 'ANALYZE TABLE ' : ', ') - . Util::backquote($selected[$i]); - $execute_query_later = true; - break; - case 'checksum_tbl': $sql_query .= (empty($sql_query) ? 'CHECKSUM TABLE ' : ', ') . Util::backquote($selected[$i]); @@ -1790,4 +1783,55 @@ class StructureController extends AbstractController $this->index(); } + + public function analyzeTable(): void + { + global $db, $goto, $pmaThemeImage; + + $selected = $_POST['selected_tbl'] ?? []; + + if (empty($selected)) { + $this->response->setRequestStatus(false); + $this->response->addJSON('message', __('No table selected.')); + + return; + } + + $sqlQuery = ''; + $selectedCount = count($selected); + + for ($i = 0; $i < $selectedCount; $i++) { + $sqlQuery .= (empty($sqlQuery) ? 'ANALYZE TABLE ' : ', ') . Util::backquote($selected[$i]); + } + + $sql = new Sql(); + $sql->executeQueryAndSendQueryResponse( + null, + false, + $db, + '', + null, + null, + null, + null, + null, + null, + $goto, + $pmaThemeImage, + null, + null, + 'analyze_tbl', + $sqlQuery, + $selected, + null + ); + + if (empty($_POST['message'])) { + $_POST['message'] = Message::success(); + } + + unset($_POST['submit_mult']); + + $this->index(); + } } diff --git a/libraries/routes.php b/libraries/routes.php index 47e2a3f36b..e290ca3843 100644 --- a/libraries/routes.php +++ b/libraries/routes.php @@ -139,6 +139,7 @@ return static function (RouteCollector $routes) { $routes->addGroup('/structure', static function (RouteCollector $routes) { $routes->addRoute(['GET', 'POST'], '', [StructureController::class, 'index']); $routes->post('/add-prefix', [StructureController::class, 'addPrefix']); + $routes->post('/analyze-table', [StructureController::class, 'analyzeTable']); $routes->post('/central-columns-add', [StructureController::class, 'centralColumnsAdd']); $routes->post('/central-columns-make-consistent', [ StructureController::class, -- 2.11.4.GIT