$drop_table_url_params = array(); if (!$tbl_is_view && !(isset($db_is_system_schema) && $db_is_system_schema)) { $this_sql_query = 'TRUNCATE TABLE ' . PMA\libraries\Util::backquote($GLOBALS['table']); $truncate_table_url_params = array_merge($url_params, array('sql_query' => $this_sql_query, 'goto' => 'tbl_structure.php', 'reload' => '1', 'message_to_show' => sprintf(__('Table %s has been emptied.'), htmlspecialchars($table)))); } if (!(isset($db_is_system_schema) && $db_is_system_schema)) { $this_sql_query = 'DROP TABLE ' . PMA\libraries\Util::backquote($GLOBALS['table']); $drop_table_url_params = array_merge($url_params, array('sql_query' => $this_sql_query, 'goto' => 'db_operations.php', 'reload' => '1', 'purge' => '1', 'message_to_show' => sprintf($tbl_is_view ? __('View %s has been dropped.') : __('Table %s has been dropped.'), htmlspecialchars($table)), 'table' => $GLOBALS['table'])); } $response->addHTML(PMA_getHtmlForDeleteDataOrTable($truncate_table_url_params, $drop_table_url_params)); } if (Partition::havePartitioning()) { $partition_names = Partition::getPartitionNames($db, $table); // show the Partition maintenance section only if we detect a partition if (!is_null($partition_names[0])) { $response->addHTML(PMA_getHtmlForPartitionMaintenance($partition_names, $url_params)); } // end if } // end if unset($partition_names); // Referential integrity check // The Referential integrity check was intended for the non-InnoDB // tables for which the relations are defined in pmadb // so I assume that if the current table is InnoDB, I don't display // this choice (InnoDB maintains integrity by itself) if ($cfgRelation['relwork'] && !$is_innodb) { $GLOBALS['dbi']->selectDb($GLOBALS['db']); $foreign = PMA_getForeigners($GLOBALS['db'], $GLOBALS['table'], '', 'internal'); if (!empty($foreign)) { $response->addHTML(PMA_getHtmlForReferentialIntegrityCheck($foreign, $url_params));
/** * Test for PMA_getHtmlForPartitionMaintenance * * @return void */ public function testGetHtmlForPartitionMaintenance() { $html = PMA_getHtmlForPartitionMaintenance(array("partition1", "partion2"), array("param1" => 'foo', "param2" => 'bar')); $this->assertRegExp('/.*action="tbl_operations.php".*/', $html); $this->assertRegExp('/.*ANALYZE.*/', $html); $this->assertRegExp('/.*REBUILD.*/', $html); }
/** * Test for PMA_getHtmlForPartitionMaintenance * * @return void */ public function testGetHtmlForPartitionMaintenance() { $this->assertRegExp('/.*action="tbl_operations.php"(.|[\\n])*ANALYZE([\\n]|.)*REBUILD([\\n]|.)*/m', PMA_getHtmlForPartitionMaintenance(array("partition1", "partion2"), array("param1" => 'foo', "param2" => 'bar'))); }
} $response->addHTML( PMA_getHtmlForDeleteDataOrTable( $truncate_table_url_params, $drop_table_url_params ) ); } $response->addHTML('<br class="clearfloat">'); if (PMA_Partition::havePartitioning()) { $partition_names = PMA_Partition::getPartitionNames($db, $table); // show the Partition maintenance section only if we detect a partition if (! is_null($partition_names[0])) { $response->addHTML( PMA_getHtmlForPartitionMaintenance($partition_names, $url_params) ); } // end if } // end if unset($partition_names); // Referential integrity check // The Referential integrity check was intended for the non-InnoDB // tables for which the relations are defined in pmadb // so I assume that if the current table is InnoDB, I don't display // this choice (InnoDB maintains integrity by itself) if ($cfgRelation['relwork'] && ! $is_innodb) { PMA_DBI_select_db($GLOBALS['db']); $foreign = PMA_getForeigners($GLOBALS['db'], $GLOBALS['table']);