~ubuntu-branches/ubuntu/trusty/mysql-workbench/trusty

« back to all changes in this revision

Viewing changes to plugins/db.mysql.diff.reporting/backend/db_mysql_diff_reporting.cpp

  • Committer: Package Import Robot
  • Author(s): Dmitry Smirnov
  • Date: 2013-06-05 09:13:55 UTC
  • mfrom: (5.1.5 experimental)
  • Revision ID: package-import@ubuntu.com-20130605091355-lz0oqppmlovk587y
Tags: 5.2.47+dfsg-1
* Upload to unstable.
* New patch to get libpython flags using `python-config`
  (Closes: #710627).
* Build-Depends:
  - python-all-dev
  + python-dev (provides `python-config`)
  - libboost-dev
  + libboost1.53-dev | libboost-dev (needed to avoid FTBFS since
    libmysqlcppconn depends on boost1.53 which conflicts with older
    boost that is pulled by libboost-dev).
* rules: added "-v" to `mv` command (more build-time verbosity).
* rules: get-orig-source improvements.
* Dropped unused lintian-overrides

Show diffs side-by-side

added added

removed removed

Lines of Context:
16
16
#include "grtdb/diff_dbobjectmatch.h"
17
17
 
18
18
#include "grtsqlparser/sql_facade.h"
19
 
#include "grti/sqlgenerator.h"
 
19
#include "interfaces/sqlgenerator.h"
20
20
#include "db.mysql/backend/db_mysql_public_interface.h"
21
21
 
22
 
#include "db.mysql/src/module_db_mysql_shared_code.h"
23
22
#include "grtdb/charset_utils.h"
24
23
#include "grtdb/db_object_helpers.h"
25
24
 
101
100
  if(grt::StringRef::can_wrap(default_engine))
102
101
    default_engine_name = grt::StringRef::cast_from(default_engine);
103
102
 
104
 
  left_cat_copy= db_mysql_CatalogRef::cast_from(grt::copy_object(manager_->get_grt(), left_cat));
 
103
  left_cat_copy= db_mysql_CatalogRef::cast_from(grt::copy_object(left_cat));
105
104
  bec::CatalogHelper::apply_defaults(left_cat_copy, default_engine_name);
106
105
 
107
106
  if(!right.is_valid())
115
114
    right_cat= db_mysql_CatalogRef::cast_from(right);
116
115
  }
117
116
 
118
 
  right_cat_copy= db_mysql_CatalogRef::cast_from(grt::copy_object(manager_->get_grt(), right_cat));
 
117
  right_cat_copy= db_mysql_CatalogRef::cast_from(grt::copy_object(right_cat));
119
118
  bec::CatalogHelper::apply_defaults(right_cat_copy, default_engine_name);
120
119
 
121
120
  CatalogMap left_catalog_map;
132
131
  bec::apply_user_datatypes(left_cat_copy, rdbms);
133
132
 
134
133
 
135
 
  grt::DbObjectMatchAlterOmf omf;
136
 
  omf.dontdiff_mask = 3;
137
 
  grt::NormalizedComparer normalizer(manager_->get_grt());
138
 
  normalizer.init_omf(&omf);
139
 
  boost::shared_ptr<DiffChange> alter_change= diff_make(left_cat_copy, right_cat_copy, &omf);
140
 
 
141
 
  SQLGeneratorInterfaceWrapper *diffsql_module= 
142
 
    manager_->get_grt()->get_module_wrapper<SQLGeneratorInterfaceWrapper>("DbMySQL");
143
 
 
144
 
  if(diffsql_module == NULL)
145
 
    throw DbMySQLDiffReportingException("error loading module MySQLModuleDbMySQL");
 
134
  SQLGeneratorInterfaceImpl *diffsql_module= dynamic_cast<SQLGeneratorInterfaceImpl*>(manager_->get_grt()->get_module("DbMySQL"));
 
135
 
 
136
  if (diffsql_module == NULL)
 
137
    throw DbMySQLDiffReportingException("error loading module DbMySQL");
146
138
 
147
139
  std::string tpath;
148
140
  tpath.append("modules").append(G_DIR_SEPARATOR_S).append("data").append(G_DIR_SEPARATOR_S).append("db_mysql_catalog_reporting")
149
141
    .append(G_DIR_SEPARATOR_S).append("Basic_Text.tpl").append(G_DIR_SEPARATOR_S).append("basic_text_report.txt.tpl");
150
142
 
151
143
  grt::DictRef options(manager_->get_grt());
 
144
  options.set("OMFDontDiffMask", grt::IntegerRef(3));
152
145
  options.set("UseFilteredLists", grt::IntegerRef(0));
153
146
  options.set("KeepOrder", grt::IntegerRef(1));
154
147
  options.set("TemplateFile", 
155
148
    grt::StringRef(manager_->get_data_file_path(tpath).c_str()));
156
149
 
157
 
  char buf1[128];
158
 
  sprintf(buf1, "%p", alter_change.get());
159
 
 
160
 
  //if(alter_change)
161
 
  //  alter_change->dump_log(0); 
162
 
 
163
150
  grt::StringRef output_string(
164
 
    diffsql_module->generateReport(left_cat_copy, options, std::string(buf1)));
 
151
    diffsql_module->generateReportForDifferences(left_cat_copy, right_cat_copy, options));
165
152
 
166
 
  return std::string(output_string.c_str());
 
153
  return *output_string;
167
154
}