Loading sql/mysqlbinlog.cc +38 −28 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ ulong mysqld_net_retry_count = 10L; ulong net_read_timeout= NET_READ_TIMEOUT; ulong net_write_timeout= NET_WRITE_TIMEOUT; uint test_flags = 0; FILE *result_file; #ifndef DBUG_OFF static const char* default_dbug_option = "d:t:o,/tmp/mysqlbinlog.trace"; Loading @@ -54,11 +55,11 @@ static struct option long_options[] = {"password", required_argument, 0, 'p'}, {"port", required_argument, 0, 'P'}, {"position", required_argument, 0, 'j'}, {"result-file", required_argument, 0, 'r'}, {"short-form", no_argument, 0, 's'}, {"table", required_argument, 0, 't'}, {"user", required_argument, 0, 'u'}, {"version", no_argument, 0, 'V'}, {0, 0, 0, 0} }; void sql_print_error(const char *format,...); Loading Loading @@ -107,7 +108,7 @@ static void die(const char* fmt, ...) static void print_version() { printf("%s Ver 1.2 for %s at %s\n",my_progname,SYSTEM_TYPE, MACHINE_TYPE); printf("%s Ver 1.3 for %s at %s\n",my_progname,SYSTEM_TYPE, MACHINE_TYPE); } Loading @@ -134,6 +135,7 @@ the mysql command line client\n\n"); -P, --port=port Use port to connect to the remove server\n\ -u, --user=username Connect to the remove server as username\n\ -p, --password=password Password to connect to remote server\n\ -r, --result-file=file Direct output to a given file\n\ -j, --position=N Start reading the binlog at position N\n\ -t, --table=name Get raw table dump using COM_TABLE_DUMB\n\ -V, --version Print version and exit.\n\ Loading Loading @@ -164,17 +166,18 @@ static void dump_remote_file(NET* net, const char* fname) die("Failed reading a packet during the dump of %s ", fname); if(!short_form) (void)my_fwrite(stdout, (byte*) net->read_pos, packet_len, MYF(0)); (void)my_fwrite(result_file, (byte*) net->read_pos, packet_len,MYF(0)); } fflush(stdout); fflush(result_file); } static int parse_args(int *argc, char*** argv) { int c, opt_index = 0; while((c = getopt_long(*argc, *argv, "so:#::h:j:u:p:P:t:?V", long_options, result_file = stdout; while((c = getopt_long(*argc, *argv, "so:#::h:j:u:p:P:r:t:?V", long_options, &opt_index)) != EOF) { switch(c) Loading Loading @@ -211,6 +214,11 @@ static int parse_args(int *argc, char*** argv) pass = my_strdup(optarg, MYF(0)); break; case 'r': if (!(result_file = my_fopen(optarg, O_WRONLY | O_BINARY, MYF(MY_WME)))) exit(1); break; case 'u': use_remote = 1; user = my_strdup(optarg, MYF(0)); Loading Loading @@ -282,8 +290,8 @@ static void dump_remote_table(NET* net, const char* db, const char* table) if(packet_len == 0) break; // end of file if(packet_len == packet_error) die("Error reading packet in table dump"); my_fwrite(stdout, (byte*)net->read_pos, packet_len, MYF(MY_WME)); fflush(stdout); my_fwrite(result_file, (byte*)net->read_pos, packet_len, MYF(MY_WME)); fflush(result_file); } } Loading Loading @@ -325,7 +333,7 @@ Unfortunately, no sweepstakes today, adjusted position to 4\n"); len - 1); if(ev) { ev->print(stdout, short_form, last_db); ev->print(result_file, short_form, last_db); if(ev->get_type_code() == LOAD_EVENT) dump_remote_file(net, ((Load_log_event*)ev)->fname); delete ev; Loading @@ -352,7 +360,7 @@ static void dump_local_log_entries(const char* logname) } else { if (init_io_cache(file, fileno(stdout), 0, READ_CACHE, (my_off_t) 0, if (init_io_cache(file, fileno(result_file), 0, READ_CACHE, (my_off_t) 0, 0, MYF(MY_WME | MY_NABP | MY_DONT_CHECK_FILESIZE))) exit(1); if (position) Loading Loading @@ -398,9 +406,9 @@ Could not read entry at offset %s : Error in log format or read error", if (rec_count >= offset) { if (!short_form) printf("# at %s\n",llstr(old_off,llbuff)); fprintf(result_file, "# at %s\n",llstr(old_off,llbuff)); ev->print(stdout, short_form, last_db); ev->print(result_file, short_form, last_db); } rec_count++; delete ev; Loading Loading @@ -448,6 +456,8 @@ int main(int argc, char** argv) dump_log_entries(*(argv++)); } } if (result_file != stdout) my_fclose(result_file, MYF(0)); if (use_remote) mc_mysql_close(mysql); return 0; Loading Loading
sql/mysqlbinlog.cc +38 −28 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ ulong mysqld_net_retry_count = 10L; ulong net_read_timeout= NET_READ_TIMEOUT; ulong net_write_timeout= NET_WRITE_TIMEOUT; uint test_flags = 0; FILE *result_file; #ifndef DBUG_OFF static const char* default_dbug_option = "d:t:o,/tmp/mysqlbinlog.trace"; Loading @@ -54,11 +55,11 @@ static struct option long_options[] = {"password", required_argument, 0, 'p'}, {"port", required_argument, 0, 'P'}, {"position", required_argument, 0, 'j'}, {"result-file", required_argument, 0, 'r'}, {"short-form", no_argument, 0, 's'}, {"table", required_argument, 0, 't'}, {"user", required_argument, 0, 'u'}, {"version", no_argument, 0, 'V'}, {0, 0, 0, 0} }; void sql_print_error(const char *format,...); Loading Loading @@ -107,7 +108,7 @@ static void die(const char* fmt, ...) static void print_version() { printf("%s Ver 1.2 for %s at %s\n",my_progname,SYSTEM_TYPE, MACHINE_TYPE); printf("%s Ver 1.3 for %s at %s\n",my_progname,SYSTEM_TYPE, MACHINE_TYPE); } Loading @@ -134,6 +135,7 @@ the mysql command line client\n\n"); -P, --port=port Use port to connect to the remove server\n\ -u, --user=username Connect to the remove server as username\n\ -p, --password=password Password to connect to remote server\n\ -r, --result-file=file Direct output to a given file\n\ -j, --position=N Start reading the binlog at position N\n\ -t, --table=name Get raw table dump using COM_TABLE_DUMB\n\ -V, --version Print version and exit.\n\ Loading Loading @@ -164,17 +166,18 @@ static void dump_remote_file(NET* net, const char* fname) die("Failed reading a packet during the dump of %s ", fname); if(!short_form) (void)my_fwrite(stdout, (byte*) net->read_pos, packet_len, MYF(0)); (void)my_fwrite(result_file, (byte*) net->read_pos, packet_len,MYF(0)); } fflush(stdout); fflush(result_file); } static int parse_args(int *argc, char*** argv) { int c, opt_index = 0; while((c = getopt_long(*argc, *argv, "so:#::h:j:u:p:P:t:?V", long_options, result_file = stdout; while((c = getopt_long(*argc, *argv, "so:#::h:j:u:p:P:r:t:?V", long_options, &opt_index)) != EOF) { switch(c) Loading Loading @@ -211,6 +214,11 @@ static int parse_args(int *argc, char*** argv) pass = my_strdup(optarg, MYF(0)); break; case 'r': if (!(result_file = my_fopen(optarg, O_WRONLY | O_BINARY, MYF(MY_WME)))) exit(1); break; case 'u': use_remote = 1; user = my_strdup(optarg, MYF(0)); Loading Loading @@ -282,8 +290,8 @@ static void dump_remote_table(NET* net, const char* db, const char* table) if(packet_len == 0) break; // end of file if(packet_len == packet_error) die("Error reading packet in table dump"); my_fwrite(stdout, (byte*)net->read_pos, packet_len, MYF(MY_WME)); fflush(stdout); my_fwrite(result_file, (byte*)net->read_pos, packet_len, MYF(MY_WME)); fflush(result_file); } } Loading Loading @@ -325,7 +333,7 @@ Unfortunately, no sweepstakes today, adjusted position to 4\n"); len - 1); if(ev) { ev->print(stdout, short_form, last_db); ev->print(result_file, short_form, last_db); if(ev->get_type_code() == LOAD_EVENT) dump_remote_file(net, ((Load_log_event*)ev)->fname); delete ev; Loading @@ -352,7 +360,7 @@ static void dump_local_log_entries(const char* logname) } else { if (init_io_cache(file, fileno(stdout), 0, READ_CACHE, (my_off_t) 0, if (init_io_cache(file, fileno(result_file), 0, READ_CACHE, (my_off_t) 0, 0, MYF(MY_WME | MY_NABP | MY_DONT_CHECK_FILESIZE))) exit(1); if (position) Loading Loading @@ -398,9 +406,9 @@ Could not read entry at offset %s : Error in log format or read error", if (rec_count >= offset) { if (!short_form) printf("# at %s\n",llstr(old_off,llbuff)); fprintf(result_file, "# at %s\n",llstr(old_off,llbuff)); ev->print(stdout, short_form, last_db); ev->print(result_file, short_form, last_db); } rec_count++; delete ev; Loading Loading @@ -448,6 +456,8 @@ int main(int argc, char** argv) dump_log_entries(*(argv++)); } } if (result_file != stdout) my_fclose(result_file, MYF(0)); if (use_remote) mc_mysql_close(mysql); return 0; Loading