~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to client/drizzledump.cc

  • Committer: Patrick Crews
  • Date: 2010-12-07 20:02:50 UTC
  • Revision ID: gleebix@gmail.com-20101207200250-6a27jgqalgw5bsb5
Added disabled.def file to disable drizzleslap due to Bug#684269.  Need to skip for tarball release this round

Show diffs side-by-side

added added

removed removed

Lines of Context:
103
103
bool extended_insert= true;
104
104
bool opt_replace_into= false;
105
105
bool opt_drop= true; 
106
 
bool opt_data_is_mangled= false;
107
106
uint32_t show_progress_size= 0;
108
107
static string insert_pat;
109
108
static uint32_t opt_drizzle_port= 0;
140
139
  opt_protocol,
141
140
  where;
142
141
 
 
142
//static const CHARSET_INFO *charset_info= &my_charset_utf8_general_ci;
 
143
 
143
144
boost::unordered_set<string> ignore_table;
144
145
 
145
146
void maybe_exit(int error);
471
472
{
472
473
  int exit_code;
473
474
 
474
 
#if defined(ENABLE_NLS)
475
 
# if defined(HAVE_LOCALE_H)
476
 
  setlocale(LC_ALL, "");
477
 
# endif
478
 
  bindtextdomain("drizzle7", LOCALEDIR);
479
 
  textdomain("drizzle7");
480
 
#endif
481
 
 
482
 
  po::options_description commandline_options(_("Options used only in command line"));
 
475
  po::options_description commandline_options(N_("Options used only in command line"));
483
476
  commandline_options.add_options()
484
477
  ("all-databases,A", po::value<bool>(&opt_alldbs)->default_value(false)->zero_tokens(),
485
 
  _("Dump all the databases. This will be same as --databases with all databases selected."))
 
478
  N_("Dump all the databases. This will be same as --databases with all databases selected."))
486
479
  ("all-tablespaces,Y", po::value<bool>(&opt_alltspcs)->default_value(false)->zero_tokens(),
487
 
  _("Dump all the tablespaces."))
 
480
  N_("Dump all the tablespaces."))
488
481
  ("complete-insert,c", po::value<bool>(&opt_complete_insert)->default_value(false)->zero_tokens(),
489
 
  _("Use complete insert statements."))
 
482
  N_("Use complete insert statements."))
490
483
  ("flush-logs,F", po::value<bool>(&flush_logs)->default_value(false)->zero_tokens(),
491
 
  _("Flush logs file in server before starting dump. Note that if you dump many databases at once (using the option --databases= or --all-databases), the logs will be flushed for each database dumped. The exception is when using --lock-all-tables in this case the logs will be flushed only once, corresponding to the moment all tables are locked. So if you want your dump and the log flush to happen at the same exact moment you should use --lock-all-tables or --flush-logs"))
 
484
  N_("Flush logs file in server before starting dump. Note that if you dump many databases at once (using the option --databases= or --all-databases), the logs will be flushed for each database dumped. The exception is when using --lock-all-tables in this case the logs will be flushed only once, corresponding to the moment all tables are locked. So if you want your dump and the log flush to happen at the same exact moment you should use --lock-all-tables or --flush-logs"))
492
485
  ("force,f", po::value<bool>(&ignore_errors)->default_value(false)->zero_tokens(),
493
 
  _("Continue even if we get an sql-error."))
494
 
  ("help,?", _("Display this help message and exit."))
 
486
  N_("Continue even if we get an sql-error."))
 
487
  ("help,?", N_("Display this help message and exit."))
495
488
  ("lock-all-tables,x", po::value<bool>(&opt_lock_all_tables)->default_value(false)->zero_tokens(),
496
 
  _("Locks all tables across all databases. This is achieved by taking a global read lock for the duration of the whole dump. Automatically turns --single-transaction off."))
 
489
  N_("Locks all tables across all databases. This is achieved by taking a global read lock for the duration of the whole dump. Automatically turns --single-transaction off."))
497
490
  ("single-transaction", po::value<bool>(&opt_single_transaction)->default_value(false)->zero_tokens(),
498
 
  _("Creates a consistent snapshot by dumping all tables in a single transaction. Works ONLY for tables stored in storage engines which support multiversioning (currently only InnoDB does); the dump is NOT guaranteed to be consistent for other storage engines. While a --single-transaction dump is in process, to ensure a valid dump file (correct table contents), no other connection should use the following statements: ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, as consistent snapshot is not isolated from them."))
 
491
  N_("Creates a consistent snapshot by dumping all tables in a single transaction. Works ONLY for tables stored in storage engines which support multiversioning (currently only InnoDB does); the dump is NOT guaranteed to be consistent for other storage engines. While a --single-transaction dump is in process, to ensure a valid dump file (correct table contents), no other connection should use the following statements: ALTER TABLE, DROP TABLE, RENAME TABLE, TRUNCATE TABLE, as consistent snapshot is not isolated from them."))
499
492
  ("skip-opt", 
500
 
  _("Disable --opt. Disables --add-drop-table, --add-locks, --create-options, ---extended-insert and --disable-keys."))    
501
 
  ("tables", _("Overrides option --databases (-B)."))
 
493
  N_("Disable --opt. Disables --add-drop-table, --add-locks, --create-options, ---extended-insert and --disable-keys."))    
 
494
  ("tables", N_("Overrides option --databases (-B)."))
502
495
  ("show-progress-size", po::value<uint32_t>(&show_progress_size)->default_value(10000),
503
 
  _("Number of rows before each output progress report (requires --verbose)."))
 
496
  N_("Number of rows before each output progress report (requires --verbose)."))
504
497
  ("verbose,v", po::value<bool>(&verbose)->default_value(false)->zero_tokens(),
505
 
  _("Print info about the various stages."))
506
 
  ("version,V", _("Output version information and exit."))
507
 
  ("skip-comments", _("Turn off Comments"))
508
 
  ("skip-create", _("Turn off create-options"))
509
 
  ("skip-extended-insert", _("Turn off extended-insert"))
510
 
  ("skip-dump-date", _( "Turn off dump date at the end of the output"))
511
 
  ("no-defaults", _("Do not read from the configuration files"))
 
498
  N_("Print info about the various stages."))
 
499
  ("version,V", N_("Output version information and exit."))
 
500
  ("skip-comments", N_("Turn off Comments"))
 
501
  ("skip-create", N_("Turn off create-options"))
 
502
  ("skip-extended-insert", N_("Turn off extended-insert"))
 
503
  ("skip-dump-date",N_( "Turn off dump date at the end of the output"))
 
504
  ("no-defaults", N_("Do not read from the configuration files"))
512
505
  ;
513
506
 
514
 
  po::options_description dump_options(_("Options specific to the drizzle client"));
 
507
  po::options_description dump_options(N_("Options specific to the drizzle client"));
515
508
  dump_options.add_options()
516
509
  ("add-drop-database", po::value<bool>(&opt_drop_database)->default_value(false)->zero_tokens(),
517
 
  _("Add a 'DROP DATABASE' before each create."))
518
 
  ("skip-drop-table", _("Do not add a 'drop table' before each create."))
 
510
  N_("Add a 'DROP DATABASE' before each create."))
 
511
  ("skip-drop-table", N_("Do not add a 'drop table' before each create."))
519
512
  ("compact", po::value<bool>(&opt_compact)->default_value(false)->zero_tokens(),
520
 
  _("Give less verbose output (useful for debugging). Disables structure comments and header/footer constructs.  Enables options --skip-add-drop-table --no-set-names --skip-disable-keys"))
 
513
  N_("Give less verbose output (useful for debugging). Disables structure comments and header/footer constructs.  Enables options --skip-add-drop-table --no-set-names --skip-disable-keys"))
521
514
  ("databases,B", po::value<bool>(&opt_databases)->default_value(false)->zero_tokens(),
522
 
  _("To dump several databases. Note the difference in usage; In this case no tables are given. All name arguments are regarded as databasenames. 'USE db_name;' will be included in the output."))
 
515
  N_("To dump several databases. Note the difference in usage; In this case no tables are given. All name arguments are regarded as databasenames. 'USE db_name;' will be included in the output."))
523
516
  ("skip-disable-keys,K",
524
 
  _("'ALTER TABLE tb_name DISABLE KEYS;' and 'ALTER TABLE tb_name ENABLE KEYS;' will not be put in the output."))
 
517
  N_("'ALTER TABLE tb_name DISABLE KEYS; and 'ALTER TABLE tb_name ENABLE KEYS; will not be put in the output."))
525
518
  ("ignore-table", po::value<string>(),
526
 
  _("Do not dump the specified table. To specify more than one table to ignore, use the directive multiple times, once for each table.  Each table must be specified with both database and table names, e.g. --ignore-table=database.table"))
 
519
  N_("Do not dump the specified table. To specify more than one table to ignore, use the directive multiple times, once for each table.  Each table must be specified with both database and table names, e.g. --ignore-table=database.table"))
527
520
  ("insert-ignore", po::value<bool>(&opt_ignore)->default_value(false)->zero_tokens(),
528
 
  _("Insert rows with INSERT IGNORE."))
 
521
  N_("Insert rows with INSERT IGNORE."))
529
522
  ("no-autocommit", po::value<bool>(&opt_autocommit)->default_value(false)->zero_tokens(),
530
 
  _("Wrap a table's data in START TRANSACTION/COMMIT statements."))
 
523
  N_("Wrap a table's data in START TRANSACTION/COMMIT statements."))
531
524
  ("no-create-db,n", po::value<bool>(&opt_create_db)->default_value(false)->zero_tokens(),
532
 
  _("'CREATE DATABASE IF NOT EXISTS db_name;' will not be put in the output. The above line will be added otherwise, if --databases or --all-databases option was given."))
 
525
  N_("'CREATE DATABASE IF NOT EXISTS db_name;' will not be put in the output. The above line will be added otherwise, if --databases or --all-databases option was given."))
533
526
  ("no-data,d", po::value<bool>(&opt_no_data)->default_value(false)->zero_tokens(),
534
 
  _("No row information."))
 
527
  N_("No row information."))
535
528
  ("replace", po::value<bool>(&opt_replace_into)->default_value(false)->zero_tokens(),
536
 
  _("Use REPLACE INTO instead of INSERT INTO."))
 
529
  N_("Use REPLACE INTO instead of INSERT INTO."))
537
530
  ("destination-type", po::value<string>()->default_value("stdout"),
538
 
  _("Where to send output to (stdout|database"))
 
531
  N_("Where to send output to (stdout|database"))
539
532
  ("destination-host", po::value<string>(&opt_destination_host)->default_value("localhost"),
540
 
  _("Hostname for destination db server (requires --destination-type=database)"))
 
533
  N_("Hostname for destination db server (requires --destination-type=database)"))
541
534
  ("destination-port", po::value<uint16_t>(&opt_destination_port)->default_value(4427),
542
 
  _("Port number for destination db server (requires --destination-type=database)"))
 
535
  N_("Port number for destination db server (requires --destination-type=database)"))
543
536
  ("destination-user", po::value<string>(&opt_destination_user),
544
 
  _("User name for destination db server (resquires --destination-type=database)"))
 
537
  N_("User name for destination db server (resquires --destination-type=database)"))
545
538
  ("destination-password", po::value<string>(&opt_destination_password),
546
 
  _("Password for destination db server (requires --destination-type=database)"))
 
539
  N_("Password for destination db server (requires --destination-type=database)"))
547
540
  ("destination-database", po::value<string>(&opt_destination_database),
548
 
  _("The database in the destination db server (requires --destination-type=database, not for use with --all-databases)"))
549
 
  ("my-data-is-mangled", po::value<bool>(&opt_data_is_mangled)->default_value(false)->zero_tokens(),
550
 
  _("Do not make a UTF8 connection to MySQL, use if you have UTF8 data in a non-UTF8 table"))
 
541
  N_("The database in the destination db server (requires --destination-type=database, not for use with --all-databases)"))
551
542
  ;
552
543
 
553
 
  po::options_description client_options(_("Options specific to the client"));
 
544
  po::options_description client_options(N_("Options specific to the client"));
554
545
  client_options.add_options()
555
546
  ("host,h", po::value<string>(&current_host)->default_value("localhost"),
556
 
  _("Connect to host."))
 
547
  N_("Connect to host."))
557
548
  ("password,P", po::value<string>(&password)->default_value(PASSWORD_SENTINEL),
558
 
  _("Password to use when connecting to server. If password is not given it's solicited on the tty."))
 
549
  N_("Password to use when connecting to server. If password is not given it's solicited on the tty."))
559
550
  ("port,p", po::value<uint32_t>(&opt_drizzle_port)->default_value(0),
560
 
  _("Port number to use for connection."))
 
551
  N_("Port number to use for connection."))
561
552
  ("user,u", po::value<string>(&current_user)->default_value(""),
562
 
  _("User for login if not current user."))
 
553
  N_("User for login if not current user."))
563
554
  ("protocol",po::value<string>(&opt_protocol)->default_value("mysql"),
564
 
  _("The protocol of connection (mysql or drizzle)."))
 
555
  N_("The protocol of connection (mysql or drizzle)."))
565
556
  ;
566
557
 
567
 
  po::options_description hidden_options(_("Hidden Options"));
 
558
  po::options_description hidden_options(N_("Hidden Options"));
568
559
  hidden_options.add_options()
569
 
  ("database-used", po::value<vector<string> >(), _("Used to select the database"))
570
 
  ("Table-used", po::value<vector<string> >(), _("Used to select the tables"))
 
560
  ("database-used", po::value<vector<string> >(), N_("Used to select the database"))
 
561
  ("Table-used", po::value<vector<string> >(), N_("Used to select the tables"))
571
562
  ;
572
563
 
573
 
  po::options_description all_options(_("Allowed Options + Hidden Options"));
 
564
  po::options_description all_options(N_("Allowed Options + Hidden Options"));
574
565
  all_options.add(commandline_options).add(dump_options).add(client_options).add(hidden_options);
575
566
 
576
 
  po::options_description long_options(_("Allowed Options"));
 
567
  po::options_description long_options(N_("Allowed Options"));
577
568
  long_options.add(commandline_options).add(dump_options).add(client_options);
578
569
 
579
570
  std::string system_config_dir_dump(SYSCONFDIR); 
768
759
    maybe_exit(EX_DRIZZLEERR);
769
760
  }
770
761
 
771
 
  if ((db_connection->getServerType() == DrizzleDumpConnection::SERVER_MYSQL_FOUND) and (not opt_data_is_mangled))
 
762
  if (db_connection->getServerType() == DrizzleDumpConnection::SERVER_MYSQL_FOUND)
772
763
    db_connection->queryNoResult("SET NAMES 'utf8'");
773
764
 
774
765
  if (vm.count("destination-type"))
810
801
    dump_selected_tables(database_used, vm["Table-used"].as< vector<string> >());
811
802
  }
812
803
 
813
 
  if (vm.count("Table-used") and opt_databases)
 
804
  if (vm.count("Table-used") && opt_databases)
814
805
  {
 
806
/*
 
807
 * This is not valid!
815
808
    vector<string> database_used= vm["database-used"].as< vector<string> >();
816
809
    vector<string> table_used= vm["Table-used"].as< vector<string> >();
817
810
 
821
814
    {
822
815
      database_used.insert(database_used.end(), *it);
823
816
    }
824
 
 
825
817
    dump_databases(database_used);
826
 
    dump_all_tables();
 
818
    dump_tables();
 
819
*/
827
820
  }
828
 
 
 
821
  
829
822
  if (vm.count("database-used") && ! vm.count("Table-used"))
830
823
  {
831
824
    dump_databases(vm["database-used"].as< vector<string> >());
832
825
    dump_all_tables();
833
826
  }
834
 
 
835
827
  if (opt_destination == DESTINATION_STDOUT)
836
828
    generate_dump();
837
829
  else