#include "stdafx.h"

#include "grt/tree_model.h"
#include "mysql_schema_editor.h"


/**
 * @file  mysql_schema_editor.cpp
 * @brief 
 */


MySQLSchemaEditorBE::MySQLSchemaEditorBE(bec::GRTManager *grtm, const db_SchemaRef &schema, const db_mgmt_RdbmsRef &rdbms)
  : bec::SchemaEditorBE(grtm, schema, rdbms)
{
}

void MySQLSchemaEditorBE::refactor_catalog_upon_schema_rename(const std::string &old_name, const std::string &new_name)
{
  try
  {
    grt::AutoUndo undo(_grtm->get_grt());

    SqlFacade::instance_for_db_obj(_schema)->renameSchemaReferences(get_catalog(), old_name, new_name);

    undo.end(strfmt(_("Update references to schema: `%s` -> `%s`"), old_name.c_str(), new_name.c_str()));
  }
  catch (std::exception &exc)
  {
    g_warning("Caught exception trying to refactor schema rename: %s", exc.what());
  }
}

