/** * Rename a table in relation tables * * usually called after table has been moved * * @param string $source_db Source database name * @param string $target_db Target database name * @param string $source_table Source table name * @param string $target_table Target table name * * @return void */ function PMA_REL_renameTable($source_db, $target_db, $source_table, $target_table) { // Move old entries from PMA-DBs to new table if ($GLOBALS['cfgRelation']['commwork']) { PMA_REL_renameSingleTable('column_info', $source_db, $target_db, $source_table, $target_table, 'db_name', 'table_name'); } // updating bookmarks is not possible since only a single table is // moved, and not the whole DB. if ($GLOBALS['cfgRelation']['displaywork']) { PMA_REL_renameSingleTable('table_info', $source_db, $target_db, $source_table, $target_table, 'db_name', 'table_name'); } if ($GLOBALS['cfgRelation']['relwork']) { PMA_REL_renameSingleTable('relation', $source_db, $target_db, $source_table, $target_table, 'foreign_db', 'foreign_table'); PMA_REL_renameSingleTable('relation', $source_db, $target_db, $source_table, $target_table, 'master_db', 'master_table'); } if ($GLOBALS['cfgRelation']['pdfwork']) { if ($source_db == $target_db) { // rename within the database can be handled PMA_REL_renameSingleTable('table_coords', $source_db, $target_db, $source_table, $target_table, 'db_name', 'table_name'); } else { // if the table is moved out of the database we can no loger keep the // record for table coordinate $remove_query = "DELETE FROM " . PMA_Util::backquote($GLOBALS['cfgRelation']['db']) . "." . PMA_Util::backquote($GLOBALS['cfgRelation']['table_coords']) . " WHERE db_name = '" . PMA_Util::sqlAddSlashes($source_db) . "'" . " AND table_name = '" . PMA_Util::sqlAddSlashes($source_table) . "'"; PMA_queryAsControlUser($remove_query); } } if ($GLOBALS['cfgRelation']['uiprefswork']) { PMA_REL_renameSingleTable('table_uiprefs', $source_db, $target_db, $source_table, $target_table, 'db_name', 'table_name'); } if ($GLOBALS['cfgRelation']['navwork']) { // update hidden items inside table PMA_REL_renameSingleTable('navigationhiding', $source_db, $target_db, $source_table, $target_table, 'db_name', 'table_name'); // update data for hidden table $query = "UPDATE " . PMA_Util::backquote($GLOBALS['cfgRelation']['db']) . "." . PMA_Util::backquote($GLOBALS['cfgRelation']['navigationhiding']) . " SET db_name = '" . PMA_Util::sqlAddSlashes($target_db) . "'," . " item_name = '" . PMA_Util::sqlAddSlashes($target_table) . "'" . " WHERE db_name = '" . PMA_Util::sqlAddSlashes($source_db) . "'" . " AND item_name = '" . PMA_Util::sqlAddSlashes($source_table) . "'" . " AND item_type = 'table'"; PMA_queryAsControlUser($query); } }
/** * Rename a table in relation tables * * usually called after table has been moved * * @param string $source_db Source database name * @param string $target_db Target database name * @param string $source_table Source table name * @param string $target_table Target table name * * @return void */ function PMA_REL_renameTable($source_db, $target_db, $source_table, $target_table) { // Move old entries from PMA-DBs to new table if ($GLOBALS['cfgRelation']['commwork']) { PMA_REL_renameSingleTable('column_info', $source_db, $target_db, $source_table, $target_table, 'db_name', 'table_name'); } // updating bookmarks is not possible since only a single table is // moved, and not the whole DB. if ($GLOBALS['cfgRelation']['displaywork']) { PMA_REL_renameSingleTable('table_info', $source_db, $target_db, $source_table, $target_table, 'db_name', 'table_name'); } if ($GLOBALS['cfgRelation']['relwork']) { PMA_REL_renameSingleTable('relation', $source_db, $target_db, $source_table, $target_table, 'foreign_db', 'foreign_table'); PMA_REL_renameSingleTable('relation', $source_db, $target_db, $source_table, $target_table, 'master_db', 'master_table'); } /** * @todo Can't get moving PDFs the right way. The page numbers * always get screwed up independently from duplication because the * numbers do not seem to be stored on a per-database basis. Would * the author of pdf support please have a look at it? */ if ($GLOBALS['cfgRelation']['pdfwork']) { PMA_REL_renameSingleTable('table_coords', $source_db, $target_db, $source_table, $target_table, 'db_name', 'table_name'); } if ($GLOBALS['cfgRelation']['designerwork']) { PMA_REL_renameSingleTable('designer_coords', $source_db, $target_db, $source_table, $target_table, 'db_name', 'table_name'); } }