mysqlbinlog now prints "# Number of rows" and stops on errors
Main problem was that no log-event print function checked for disk full error on the IO_CACHE. All changes in this patch only affects mysqlbinlog, not the server! - Changed all log-event print functions to return 1 on error - Fixed memory usage when not using --flashback. - Added printing of number of rows in row events. Can be disabled with --print-row-count=0 - Print annotated rows when using mysqlbinlog --short-form - Fixed that mysqlbinlog --debug works - Fixed create_drop_binlog.test test failure - Reorganized fields in PRINT_EVENT_INFO to be according to size to optimize storage - Don't change print_row_event_position or print_row_counts if set by user - Remove some testing of argument to my_free is 0 - base64-output=never is now supported and works in all context - Updated help information for --base64-output and --short-form - print_row_count is now on by default. Reset automatically if --short-form is used - Removed obsolote warning for mysql 5.6.0 - More DBUG_PRINT for mysqltest.cc - my_b_write_byte() now checks for flush failures. This fixed a memory overrun on disk full - my_b_printf() now returns 1 on failure, 0 on ok. This simplifies code and no old code was using the old return value of my_b_printf(). - my_b_Write_backtick_quote() now returns 1 on failure and 0 on ok - Fixed some error conditions in log printing that was not previously handled. - Slave_rows_error_report() can now handle longlong positions - Write_on_release_cache() rewritten so that we can detect errors on flush. Not depending on automatic release anymore. - Changed types for Pos and End_log_pos to 64 bit in SHOW BINLOG EVENTS - Fixed that copy_event_cache_to_string_and_reinit() works with strings longer than 4G (Changed to use LEX_STRING instead of String) - Restricted binlog_rows_event_max_size to UINT32_MAX-1 as String's are anyway restricted to UINT32_MAX - Fixed bug in rpl_binlog_state::write_to_iocache() which hide write failures (duplicate variable name) - Fixed bug in String::append if original string was not allocated - Stop mysqlbinlog output at once if there is an error. - Before printing error message, flush result file. This ensures that the error message is printed last. (Easier to find)
This commit is contained in:
parent
40f4525f43
commit
e64184134a
@ -98,6 +98,7 @@ enum options_client
|
||||
OPT_REPORT_PROGRESS,
|
||||
OPT_SKIP_ANNOTATE_ROWS_EVENTS,
|
||||
OPT_SSL_CRL, OPT_SSL_CRLPATH,
|
||||
OPT_PRINT_ROW_COUNT, OPT_PRINT_ROW_EVENT_POSITIONS,
|
||||
OPT_MAX_CLIENT_OPTION /* should be always the last */
|
||||
};
|
||||
|
||||
|
@ -86,7 +86,8 @@ static char *result_file_name= 0;
|
||||
static const char *output_prefix= "";
|
||||
|
||||
#ifndef DBUG_OFF
|
||||
static const char* default_dbug_option = "d:t:o,/tmp/mysqlbinlog.trace";
|
||||
static const char *default_dbug_option = "d:t:o,/tmp/mysqlbinlog.trace";
|
||||
const char *current_dbug_option= default_dbug_option;
|
||||
#endif
|
||||
static const char *load_groups[]=
|
||||
{ "mysqlbinlog", "client", "client-server", "client-mariadb", 0 };
|
||||
@ -106,6 +107,8 @@ static char *opt_base64_output_mode_str= NullS;
|
||||
static char* database= 0;
|
||||
static char* table= 0;
|
||||
static my_bool force_opt= 0, short_form= 0, remote_opt= 0;
|
||||
static my_bool print_row_count= 0, print_row_event_positions= 0;
|
||||
static my_bool print_row_count_used= 0, print_row_event_positions_used= 0;
|
||||
static my_bool debug_info_flag, debug_check_flag;
|
||||
static my_bool force_if_open_opt= 1;
|
||||
static my_bool opt_raw_mode= 0, opt_stop_never= 0;
|
||||
@ -221,14 +224,16 @@ void keep_annotate_event(Annotate_rows_log_event* event)
|
||||
annotate_event= event;
|
||||
}
|
||||
|
||||
void print_annotate_event(PRINT_EVENT_INFO *print_event_info)
|
||||
bool print_annotate_event(PRINT_EVENT_INFO *print_event_info)
|
||||
{
|
||||
bool error= 0;
|
||||
if (annotate_event)
|
||||
{
|
||||
annotate_event->print(result_file, print_event_info);
|
||||
error= annotate_event->print(result_file, print_event_info);
|
||||
delete annotate_event; // the event should not be printed more than once
|
||||
annotate_event= 0;
|
||||
}
|
||||
return error;
|
||||
}
|
||||
|
||||
static Exit_status dump_local_log_entries(PRINT_EVENT_INFO *, const char*);
|
||||
@ -792,7 +797,7 @@ print_use_stmt(PRINT_EVENT_INFO* pinfo, const Query_log_event *ev)
|
||||
static void
|
||||
print_skip_replication_statement(PRINT_EVENT_INFO *pinfo, const Log_event *ev)
|
||||
{
|
||||
int cur_val;
|
||||
bool cur_val;
|
||||
|
||||
cur_val= (ev->flags & LOG_EVENT_SKIP_REPLICATION_F) != 0;
|
||||
if (cur_val == pinfo->skip_replication)
|
||||
@ -844,8 +849,9 @@ write_event_header_and_base64(Log_event *ev, FILE *result_file,
|
||||
DBUG_ENTER("write_event_header_and_base64");
|
||||
|
||||
/* Write header and base64 output to cache */
|
||||
ev->print_header(head, print_event_info, FALSE);
|
||||
ev->print_base64(body, print_event_info, FALSE);
|
||||
if (ev->print_header(head, print_event_info, FALSE) ||
|
||||
ev->print_base64(body, print_event_info, FALSE))
|
||||
DBUG_RETURN(ERROR_STOP);
|
||||
|
||||
/* Read data from cache and write to result file */
|
||||
if (copy_event_cache_to_file_and_reinit(head, result_file) ||
|
||||
@ -867,24 +873,20 @@ static bool print_base64(PRINT_EVENT_INFO *print_event_info, Log_event *ev)
|
||||
passed --short-form, because --short-form disables printing
|
||||
row events.
|
||||
*/
|
||||
|
||||
if (!print_event_info->printed_fd_event && !short_form &&
|
||||
opt_base64_output_mode != BASE64_OUTPUT_DECODE_ROWS)
|
||||
opt_base64_output_mode != BASE64_OUTPUT_DECODE_ROWS &&
|
||||
opt_base64_output_mode != BASE64_OUTPUT_NEVER)
|
||||
{
|
||||
const char* type_str= ev->get_type_str();
|
||||
if (opt_base64_output_mode == BASE64_OUTPUT_NEVER)
|
||||
error("--base64-output=never specified, but binlog contains a "
|
||||
"%s event which must be printed in base64.",
|
||||
type_str);
|
||||
else
|
||||
error("malformed binlog: it does not contain any "
|
||||
"Format_description_log_event. I now found a %s event, which "
|
||||
error("malformed binlog: it does not contain any "
|
||||
"Format_description_log_event. Found a %s event, which "
|
||||
"is not safe to process without a "
|
||||
"Format_description_log_event.",
|
||||
type_str);
|
||||
return 1;
|
||||
}
|
||||
ev->print(result_file, print_event_info);
|
||||
return print_event_info->head_cache.error == -1;
|
||||
return ev->print(result_file, print_event_info);
|
||||
}
|
||||
|
||||
|
||||
@ -894,6 +896,8 @@ static bool print_row_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
Table_map_log_event *ignored_map=
|
||||
print_event_info->m_table_map_ignored.get_table(table_id);
|
||||
bool skip_event= (ignored_map != NULL);
|
||||
char ll_buff[21];
|
||||
bool result= 0;
|
||||
|
||||
if (opt_flashback)
|
||||
{
|
||||
@ -966,19 +970,18 @@ static bool print_row_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
return 0;
|
||||
|
||||
if (!opt_flashback)
|
||||
return print_base64(print_event_info, ev);
|
||||
result= print_base64(print_event_info, ev);
|
||||
else
|
||||
{
|
||||
if (is_stmt_end)
|
||||
{
|
||||
bool res= false;
|
||||
Log_event *e= NULL;
|
||||
|
||||
// Print the row_event from the last one to the first one
|
||||
for (uint i= events_in_stmt.elements; i > 0; --i)
|
||||
{
|
||||
e= *(dynamic_element(&events_in_stmt, i - 1, Log_event**));
|
||||
res= res || print_base64(print_event_info, e);
|
||||
result= result || print_base64(print_event_info, e);
|
||||
}
|
||||
// Copy all output into the Log_event
|
||||
ev->output_buf.copy(e->output_buf);
|
||||
@ -989,12 +992,17 @@ static bool print_row_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
delete e;
|
||||
}
|
||||
reset_dynamic(&events_in_stmt);
|
||||
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
if (is_stmt_end && !result)
|
||||
{
|
||||
if (print_event_info->print_row_count)
|
||||
fprintf(result_file, "# Number of rows: %s\n",
|
||||
llstr(print_event_info->row_events, ll_buff));
|
||||
print_event_info->row_events= 0;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@ -1025,7 +1033,6 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
Log_event_type ev_type= ev->get_type_code();
|
||||
my_bool destroy_evt= TRUE;
|
||||
DBUG_ENTER("process_event");
|
||||
print_event_info->short_form= short_form;
|
||||
Exit_status retval= OK_CONTINUE;
|
||||
IO_CACHE *const head= &print_event_info->head_cache;
|
||||
|
||||
@ -1071,7 +1078,7 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
retval= OK_STOP;
|
||||
goto end;
|
||||
}
|
||||
if (!short_form && !opt_flashback)
|
||||
if (print_row_event_positions)
|
||||
fprintf(result_file, "# at %s\n",llstr(pos,ll_buff));
|
||||
|
||||
if (!opt_hexdump)
|
||||
@ -1112,7 +1119,8 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
else
|
||||
{
|
||||
print_skip_replication_statement(print_event_info, ev);
|
||||
ev->print(result_file, print_event_info);
|
||||
if (ev->print(result_file, print_event_info))
|
||||
goto err;
|
||||
}
|
||||
if (head->error == -1)
|
||||
goto err;
|
||||
@ -1147,8 +1155,7 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
else
|
||||
{
|
||||
print_skip_replication_statement(print_event_info, ev);
|
||||
ce->print(result_file, print_event_info, TRUE);
|
||||
if (head->error == -1)
|
||||
if (ce->print(result_file, print_event_info, TRUE))
|
||||
goto err;
|
||||
}
|
||||
// If this binlog is not 3.23 ; why this test??
|
||||
@ -1171,8 +1178,7 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
the subsequent call load_processor.process fails, because the
|
||||
output of Append_block_log_event::print is only a comment.
|
||||
*/
|
||||
ev->print(result_file, print_event_info);
|
||||
if (head->error == -1)
|
||||
if (ev->print(result_file, print_event_info))
|
||||
goto err;
|
||||
if ((retval= load_processor.process((Append_block_log_event*) ev)) !=
|
||||
OK_CONTINUE)
|
||||
@ -1181,8 +1187,7 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
|
||||
case EXEC_LOAD_EVENT:
|
||||
{
|
||||
ev->print(result_file, print_event_info);
|
||||
if (head->error == -1)
|
||||
if (ev->print(result_file, print_event_info))
|
||||
goto err;
|
||||
Execute_load_log_event *exv= (Execute_load_log_event*)ev;
|
||||
Create_file_log_event *ce= load_processor.grab_event(exv->file_id);
|
||||
@ -1193,15 +1198,16 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
*/
|
||||
if (ce)
|
||||
{
|
||||
bool error;
|
||||
/*
|
||||
We must not convert earlier, since the file is used by
|
||||
my_open() in Load_log_processor::append().
|
||||
*/
|
||||
convert_path_to_forward_slashes((char*) ce->fname);
|
||||
ce->print(result_file, print_event_info, TRUE);
|
||||
error= ce->print(result_file, print_event_info, TRUE);
|
||||
my_free((void*)ce->fname);
|
||||
delete ce;
|
||||
if (head->error == -1)
|
||||
if (error)
|
||||
goto err;
|
||||
}
|
||||
else
|
||||
@ -1212,10 +1218,10 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
case FORMAT_DESCRIPTION_EVENT:
|
||||
delete glob_description_event;
|
||||
glob_description_event= (Format_description_log_event*) ev;
|
||||
destroy_evt= 0;
|
||||
print_event_info->common_header_len=
|
||||
glob_description_event->common_header_len;
|
||||
ev->print(result_file, print_event_info);
|
||||
if (head->error == -1)
|
||||
if (ev->print(result_file, print_event_info))
|
||||
goto err;
|
||||
if (!remote_opt)
|
||||
{
|
||||
@ -1245,8 +1251,7 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
}
|
||||
break;
|
||||
case BEGIN_LOAD_QUERY_EVENT:
|
||||
ev->print(result_file, print_event_info);
|
||||
if (head->error == -1)
|
||||
if (ev->print(result_file, print_event_info))
|
||||
goto err;
|
||||
if ((retval= load_processor.process((Begin_load_query_log_event*) ev)) !=
|
||||
OK_CONTINUE)
|
||||
@ -1264,11 +1269,9 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
{
|
||||
convert_path_to_forward_slashes(fname);
|
||||
print_skip_replication_statement(print_event_info, ev);
|
||||
exlq->print(result_file, print_event_info, fname);
|
||||
if (head->error == -1)
|
||||
if (exlq->print(result_file, print_event_info, fname))
|
||||
{
|
||||
if (fname)
|
||||
my_free(fname);
|
||||
my_free(fname);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
@ -1276,9 +1279,7 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
warning("Ignoring Execute_load_query since there is no "
|
||||
"Begin_load_query event for file_id: %u", exlq->file_id);
|
||||
}
|
||||
|
||||
if (fname)
|
||||
my_free(fname);
|
||||
my_free(fname);
|
||||
break;
|
||||
}
|
||||
case ANNOTATE_ROWS_EVENT:
|
||||
@ -1424,7 +1425,8 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
print the kept Annotate event (if there is any).
|
||||
print_annotate_event() also deletes the kept Annotate event.
|
||||
*/
|
||||
print_annotate_event(print_event_info);
|
||||
if (print_annotate_event(print_event_info))
|
||||
goto err;
|
||||
|
||||
size_t len_to= 0;
|
||||
const char* db_to= binlog_filter->get_rewrite_db(map->get_db_name(), &len_to);
|
||||
@ -1454,10 +1456,18 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
{
|
||||
Rows_log_event *e= (Rows_log_event*) ev;
|
||||
bool is_stmt_end= e->get_flags(Rows_log_event::STMT_END_F);
|
||||
if (!print_event_info->found_row_event)
|
||||
{
|
||||
print_event_info->found_row_event= 1;
|
||||
print_event_info->row_events= 0;
|
||||
}
|
||||
if (print_row_event(print_event_info, ev, e->get_table_id(),
|
||||
e->get_flags(Rows_log_event::STMT_END_F)))
|
||||
goto err;
|
||||
if (!is_stmt_end)
|
||||
DBUG_PRINT("info", ("is_stmt_end: %d", (int) is_stmt_end));
|
||||
if (is_stmt_end)
|
||||
print_event_info->found_row_event= 0;
|
||||
else if (opt_flashback)
|
||||
destroy_evt= FALSE;
|
||||
break;
|
||||
}
|
||||
@ -1470,7 +1480,8 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
if (print_row_event(print_event_info, ev, e->get_table_id(),
|
||||
e->get_flags(Old_rows_log_event::STMT_END_F)))
|
||||
goto err;
|
||||
if (!is_stmt_end)
|
||||
DBUG_PRINT("info", ("is_stmt_end: %d", (int) is_stmt_end));
|
||||
if (!is_stmt_end && opt_flashback)
|
||||
destroy_evt= FALSE;
|
||||
break;
|
||||
}
|
||||
@ -1479,8 +1490,7 @@ Exit_status process_event(PRINT_EVENT_INFO *print_event_info, Log_event *ev,
|
||||
/* fall through */
|
||||
default:
|
||||
print_skip_replication_statement(print_event_info, ev);
|
||||
ev->print(result_file, print_event_info);
|
||||
if (head->error == -1)
|
||||
if (ev->print(result_file, print_event_info))
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
@ -1491,7 +1501,8 @@ err:
|
||||
retval= ERROR_STOP;
|
||||
end:
|
||||
rec_count++;
|
||||
|
||||
|
||||
DBUG_PRINT("info", ("end event processing"));
|
||||
/*
|
||||
Destroy the log_event object.
|
||||
MariaDB MWL#36: mainline does this:
|
||||
@ -1536,6 +1547,7 @@ end:
|
||||
if (destroy_evt) /* destroy it later if not set (ignored table map) */
|
||||
delete ev;
|
||||
}
|
||||
DBUG_PRINT("exit",("return: %d", retval));
|
||||
DBUG_RETURN(retval);
|
||||
}
|
||||
|
||||
@ -1547,14 +1559,15 @@ static struct my_option my_options[] =
|
||||
{"base64-output", OPT_BASE64_OUTPUT_MODE,
|
||||
/* 'unspec' is not mentioned because it is just a placeholder. */
|
||||
"Determine when the output statements should be base64-encoded BINLOG "
|
||||
"statements: 'never' disables it and works only for binlogs without "
|
||||
"row-based events; 'decode-rows' decodes row events into commented SQL "
|
||||
"statements if the --verbose option is also given; 'auto' prints base64 "
|
||||
"only when necessary (i.e., for row-based events and format description "
|
||||
"events); 'always' prints base64 whenever possible. 'always' is "
|
||||
"deprecated, will be removed in a future version, and should not be used "
|
||||
"in a production system. --base64-output with no 'name' argument is "
|
||||
"equivalent to --base64-output=always and is also deprecated. If no "
|
||||
"statements: 'never' doesn't print binlog row events and should not be "
|
||||
"used when directing output to a MariaDB master; "
|
||||
"'decode-rows' decodes row events into commented SQL statements if the "
|
||||
"--verbose option is also given; "
|
||||
"'auto' prints base64 only when necessary (i.e., for row-based events and "
|
||||
"format description events); "
|
||||
"'always' prints base64 whenever possible. "
|
||||
"--base64-output with no 'name' argument is equivalent to "
|
||||
"--base64-output=always and is also deprecated. If no "
|
||||
"--base64-output[=name] option is given at all, the default is 'auto'.",
|
||||
&opt_base64_output_mode_str, &opt_base64_output_mode_str,
|
||||
0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
@ -1571,8 +1584,8 @@ static struct my_option my_options[] =
|
||||
&database, &database, 0, GET_STR_ALLOC, REQUIRED_ARG,
|
||||
0, 0, 0, 0, 0, 0},
|
||||
#ifndef DBUG_OFF
|
||||
{"debug", '#', "Output debug log.", &default_dbug_option,
|
||||
&default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"debug", '#', "Output debug log.", ¤t_dbug_option,
|
||||
¤t_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"debug-check", OPT_DEBUG_CHECK, "Check memory and open file usage at exit .",
|
||||
&debug_check_flag, &debug_check_flag, 0,
|
||||
@ -1654,6 +1667,14 @@ static struct my_option my_options[] =
|
||||
&flashback_review_tablename, &flashback_review_tablename,
|
||||
0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"print-row-count", OPT_PRINT_ROW_COUNT,
|
||||
"Print row counts for each row events",
|
||||
&print_row_count, &print_row_count, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0,
|
||||
0, 0},
|
||||
{"print-row-event-positions", OPT_PRINT_ROW_EVENT_POSITIONS,
|
||||
"Print row event positions",
|
||||
&print_row_event_positions, &print_row_event_positions, 0, GET_BOOL,
|
||||
NO_ARG, 1, 0, 0, 0, 0, 0},
|
||||
{"server-id", 0,
|
||||
"Extract only binlog entries created by the server having the given id.",
|
||||
&server_id, &server_id, 0, GET_ULONG,
|
||||
@ -1667,10 +1688,11 @@ static struct my_option my_options[] =
|
||||
&shared_memory_base_name,
|
||||
0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
#endif
|
||||
{"short-form", 's', "Just show regular queries: no extra info and no "
|
||||
"row-based events. This is for testing only, and should not be used in "
|
||||
"production systems. If you want to suppress base64-output, consider "
|
||||
"using --base64-output=never instead.",
|
||||
{"short-form", 's', "Just show regular queries: no extra info, no "
|
||||
"row-based events and no row counts. This is mainly for testing only, "
|
||||
"and should not be used to feed to the MariaDB server. "
|
||||
"If you want to just suppress base64-output, you can instead "
|
||||
"use --base64-output=never",
|
||||
&short_form, &short_form, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
|
||||
0, 0},
|
||||
{"socket", 'S', "The socket file to use for connection.",
|
||||
@ -1772,9 +1794,12 @@ Example: rewrite-db='from->to'.",
|
||||
*/
|
||||
static void error_or_warning(const char *format, va_list args, const char *msg)
|
||||
{
|
||||
if (result_file)
|
||||
fflush(result_file);
|
||||
fprintf(stderr, "%s: ", msg);
|
||||
vfprintf(stderr, format, args);
|
||||
fprintf(stderr, "\n");
|
||||
fflush(stderr);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1827,6 +1852,7 @@ static void warning(const char *format,...)
|
||||
*/
|
||||
static void cleanup()
|
||||
{
|
||||
DBUG_ENTER("cleanup");
|
||||
my_free(pass);
|
||||
my_free(database);
|
||||
my_free(table);
|
||||
@ -1840,12 +1866,13 @@ static void cleanup()
|
||||
delete glob_description_event;
|
||||
if (mysql)
|
||||
mysql_close(mysql);
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
|
||||
static void print_version()
|
||||
{
|
||||
printf("%s Ver 3.3 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
|
||||
printf("%s Ver 3.4 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
|
||||
}
|
||||
|
||||
|
||||
@ -1896,7 +1923,10 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
switch (optid) {
|
||||
#ifndef DBUG_OFF
|
||||
case '#':
|
||||
DBUG_PUSH(argument ? argument : default_dbug_option);
|
||||
if (!argument)
|
||||
argument= (char*) default_dbug_option;
|
||||
current_dbug_option= argument;
|
||||
DBUG_PUSH(argument);
|
||||
break;
|
||||
#endif
|
||||
#include <sslopt-case.h>
|
||||
@ -1998,6 +2028,12 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
|
||||
binlog_filter->add_db_rewrite(key, val);
|
||||
break;
|
||||
}
|
||||
case OPT_PRINT_ROW_COUNT:
|
||||
print_row_count_used= 1;
|
||||
break;
|
||||
case OPT_PRINT_ROW_EVENT_POSITIONS:
|
||||
print_row_event_positions_used= 1;
|
||||
break;
|
||||
case 'v':
|
||||
if (argument == disabled_my_option)
|
||||
verbose= 0;
|
||||
@ -2130,11 +2166,30 @@ static Exit_status dump_log_entries(const char* logname)
|
||||
fprintf(result_file, "DELIMITER /*!*/;\n");
|
||||
strmov(print_event_info.delimiter, "/*!*/;");
|
||||
|
||||
print_event_info.verbose= short_form ? 0 : verbose;
|
||||
if (short_form)
|
||||
{
|
||||
if (!print_row_event_positions_used)
|
||||
print_row_event_positions= 0;
|
||||
if (!print_row_count_used)
|
||||
print_row_count = 0;
|
||||
}
|
||||
if (opt_flashback)
|
||||
{
|
||||
if (!print_row_event_positions_used)
|
||||
print_row_event_positions= 0;
|
||||
}
|
||||
|
||||
print_event_info.verbose= short_form ? 0 : verbose;
|
||||
print_event_info.short_form= short_form;
|
||||
print_event_info.print_row_count= print_row_count;
|
||||
print_event_info.file= result_file;
|
||||
fflush(result_file);
|
||||
rc= (remote_opt ? dump_remote_log_entries(&print_event_info, logname) :
|
||||
dump_local_log_entries(&print_event_info, logname));
|
||||
|
||||
if (rc == ERROR_STOP)
|
||||
return rc;
|
||||
|
||||
/* Set delimiter back to semicolon */
|
||||
if (!opt_raw_mode && !opt_flashback)
|
||||
fprintf(result_file, "DELIMITER ;\n");
|
||||
@ -2205,6 +2260,8 @@ static Exit_status check_master_version()
|
||||
}
|
||||
|
||||
delete glob_description_event;
|
||||
glob_description_event= NULL;
|
||||
|
||||
switch (version) {
|
||||
case 3:
|
||||
glob_description_event= new Format_description_log_event(1);
|
||||
@ -2223,7 +2280,6 @@ static Exit_status check_master_version()
|
||||
glob_description_event= new Format_description_log_event(3);
|
||||
break;
|
||||
default:
|
||||
glob_description_event= NULL;
|
||||
error("Could not find server version: "
|
||||
"Master reported unrecognized MySQL version '%s'.", row[0]);
|
||||
goto err;
|
||||
@ -2464,6 +2520,7 @@ static Exit_status handle_event_raw_mode(PRINT_EVENT_INFO *print_event_info,
|
||||
error("Could not write into log file '%s'", out_file_name);
|
||||
DBUG_RETURN(ERROR_STOP);
|
||||
}
|
||||
print_event_info->file= result_file;
|
||||
|
||||
delete glob_description_event;
|
||||
glob_description_event= (Format_description_log_event*) ev;
|
||||
@ -2962,13 +3019,6 @@ int main(int argc, char** argv)
|
||||
|
||||
if (opt_base64_output_mode == BASE64_OUTPUT_UNSPEC)
|
||||
opt_base64_output_mode= BASE64_OUTPUT_AUTO;
|
||||
if (opt_base64_output_mode == BASE64_OUTPUT_ALWAYS)
|
||||
warning("The --base64-output=always flag and the --base64-output flag "
|
||||
"(with '=MODE' omitted), are deprecated. "
|
||||
"The output generated when these flags are used cannot be "
|
||||
"parsed by mysql 5.6.0 and later. "
|
||||
"The flags will be removed in a future version. "
|
||||
"Please use --base64-output=auto instead.");
|
||||
|
||||
my_set_max_open_files(open_files_limit);
|
||||
|
||||
@ -3081,7 +3131,7 @@ int main(int argc, char** argv)
|
||||
If enable flashback, need to print the events from the end to the
|
||||
beginning
|
||||
*/
|
||||
if (opt_flashback)
|
||||
if (opt_flashback && retval != ERROR_STOP)
|
||||
{
|
||||
for (uint i= binlog_events.elements; i > 0; --i)
|
||||
{
|
||||
@ -3096,12 +3146,15 @@ int main(int argc, char** argv)
|
||||
}
|
||||
|
||||
/* Set delimiter back to semicolon */
|
||||
if (!stop_event_string.is_empty())
|
||||
fprintf(result_file, "%s", stop_event_string.ptr());
|
||||
if (!opt_raw_mode && opt_flashback)
|
||||
fprintf(result_file, "DELIMITER ;\n");
|
||||
if (retval != ERROR_STOP)
|
||||
{
|
||||
if (!stop_event_string.is_empty())
|
||||
fprintf(result_file, "%s", stop_event_string.ptr());
|
||||
if (!opt_raw_mode && opt_flashback)
|
||||
fprintf(result_file, "DELIMITER ;\n");
|
||||
}
|
||||
|
||||
if (!opt_raw_mode)
|
||||
if (retval != ERROR_STOP && !opt_raw_mode)
|
||||
{
|
||||
/*
|
||||
Issue a ROLLBACK in case the last printed binlog was crashed and had half
|
||||
|
@ -701,6 +701,8 @@ public:
|
||||
void write(DYNAMIC_STRING* ds)
|
||||
{
|
||||
DBUG_ENTER("LogFile::write");
|
||||
DBUG_PRINT("enter", ("length: %u", (uint) ds->length));
|
||||
|
||||
DBUG_ASSERT(m_file);
|
||||
|
||||
if (ds->length == 0)
|
||||
@ -6930,6 +6932,7 @@ int read_command(struct st_command** command_ptr)
|
||||
if (parser.current_line < parser.read_lines)
|
||||
{
|
||||
get_dynamic(&q_lines, command_ptr, parser.current_line) ;
|
||||
DBUG_PRINT("info", ("query: %s", (*command_ptr)->query));
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
if (!(*command_ptr= command=
|
||||
|
@ -552,12 +552,13 @@ static inline int my_b_get(IO_CACHE *info)
|
||||
return _my_b_get(info);
|
||||
}
|
||||
|
||||
/* my_b_write_byte dosn't have any err-check */
|
||||
static inline void my_b_write_byte(IO_CACHE *info, uchar chr)
|
||||
static inline my_bool my_b_write_byte(IO_CACHE *info, uchar chr)
|
||||
{
|
||||
if (info->write_pos >= info->write_end)
|
||||
my_b_flush_io_cache(info, 1);
|
||||
if (my_b_flush_io_cache(info, 1))
|
||||
return 1;
|
||||
*info->write_pos++= chr;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -825,9 +826,9 @@ extern int end_io_cache(IO_CACHE *info);
|
||||
extern void my_b_seek(IO_CACHE *info,my_off_t pos);
|
||||
extern size_t my_b_gets(IO_CACHE *info, char *to, size_t max_length);
|
||||
extern my_off_t my_b_filelength(IO_CACHE *info);
|
||||
extern size_t my_b_write_backtick_quote(IO_CACHE *info, const char *str,
|
||||
size_t len);
|
||||
extern size_t my_b_printf(IO_CACHE *info, const char* fmt, ...);
|
||||
extern my_bool my_b_write_backtick_quote(IO_CACHE *info, const char *str,
|
||||
size_t len);
|
||||
extern my_bool my_b_printf(IO_CACHE *info, const char* fmt, ...);
|
||||
extern size_t my_b_vprintf(IO_CACHE *info, const char* fmt, va_list ap);
|
||||
extern my_bool open_cached_file(IO_CACHE *cache,const char *dir,
|
||||
const char *prefix, size_t cache_size,
|
||||
|
@ -1,3 +1,4 @@
|
||||
reset master;
|
||||
CREATE OR REPLACE DATABASE d1;
|
||||
CREATE OR REPLACE DATABASE d1;
|
||||
DROP DATABASE d1;
|
||||
|
@ -879,9 +879,7 @@ ROLLBACK /* added by mysqlbinlog */;
|
||||
End of 5.0 tests
|
||||
End of 5.1 tests
|
||||
# Expect deprecation warning.
|
||||
WARNING: The --base64-output=always flag and the --base64-output flag (with '=MODE' omitted), are deprecated. The output generated when these flags are used cannot be parsed by mysql 5.6.0 and later. The flags will be removed in a future version. Please use --base64-output=auto instead.
|
||||
# Expect deprecation warning again.
|
||||
WARNING: The --base64-output=always flag and the --base64-output flag (with '=MODE' omitted), are deprecated. The output generated when these flags are used cannot be parsed by mysql 5.6.0 and later. The flags will be removed in a future version. Please use --base64-output=auto instead.
|
||||
RESET MASTER;
|
||||
CREATE DATABASE test1;
|
||||
USE test1;
|
||||
|
@ -73,6 +73,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at 967
|
||||
#<date> server id 1 end_log_pos 1040 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -101,6 +102,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
|
||||
# Number of rows: 1
|
||||
# at 1281
|
||||
#<date> server id 1 end_log_pos 1354 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -129,6 +131,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at 1596
|
||||
#<date> server id 1 end_log_pos 1669 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -157,6 +160,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at 1909
|
||||
#<date> server id 1 end_log_pos 1982 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -218,6 +222,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 4
|
||||
# at 2225
|
||||
#<date> server id 1 end_log_pos 2298 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -298,6 +303,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at 2561
|
||||
#<date> server id 1 end_log_pos 2634 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -359,6 +365,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 4
|
||||
# at 2861
|
||||
#<date> server id 1 end_log_pos 2934 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -420,6 +427,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 4
|
||||
# at 3154
|
||||
#<date> server id 1 end_log_pos 3227 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
|
@ -71,6 +71,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at 1015
|
||||
#<date> server id 1 end_log_pos 1088 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -99,6 +100,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9=NULL /* STRING(1) meta=65025 nullable=1 is_null=1 */
|
||||
# Number of rows: 1
|
||||
# at 1330
|
||||
#<date> server id 1 end_log_pos 1403 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -127,6 +129,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at 1646
|
||||
#<date> server id 1 end_log_pos 1719 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -155,6 +158,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at 1962
|
||||
#<date> server id 1 end_log_pos 2035 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -216,6 +220,7 @@ BEGIN
|
||||
### @7=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @8=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @9='A' /* STRING(1) meta=65025 nullable=1 is_null=0 */
|
||||
# Number of rows: 4
|
||||
# at 2354
|
||||
#<date> server id 1 end_log_pos 2427 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -251,6 +256,7 @@ BEGIN
|
||||
### @5=NULL /* INT meta=0 nullable=1 is_null=1 */
|
||||
### SET
|
||||
### @5=5 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at 2665
|
||||
#<date> server id 1 end_log_pos 2738 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -280,6 +286,7 @@ BEGIN
|
||||
### DELETE FROM `test`.`t1`
|
||||
### WHERE
|
||||
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
|
||||
# Number of rows: 4
|
||||
# at 2927
|
||||
#<date> server id 1 end_log_pos 3000 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
@ -309,6 +316,7 @@ BEGIN
|
||||
### DELETE FROM `test`.`t2`
|
||||
### WHERE
|
||||
### @1=13 /* INT meta=0 nullable=0 is_null=0 */
|
||||
# Number of rows: 4
|
||||
# at 3189
|
||||
#<date> server id 1 end_log_pos 3262 CRC32 XXX Query thread_id=5 exec_time=x error_code=0
|
||||
SET TIMESTAMP=X/*!*/;
|
||||
|
@ -228,8 +228,4 @@ End of 5.1 tests
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
|
||||
ERROR: Failed on connect: SSL connection error: No such file or directory
|
||||
|
@ -33,10 +33,10 @@ a
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
DELIMITER /*!*/;
|
||||
# at 4
|
||||
<#>ROLLBACK/*!*/;
|
||||
# at 102
|
||||
<#>use `test`/*!*/;
|
||||
<#>
|
||||
ROLLBACK/*!*/;
|
||||
<#>
|
||||
use `test`/*!*/;
|
||||
SET TIMESTAMP=1196959712/*!*/;
|
||||
<#>SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=0/*!*/;
|
||||
SET @@session.sql_mode=0/*!*/;
|
||||
@ -47,7 +47,11 @@ SET @@session.lc_time_names=0/*!*/;
|
||||
SET @@session.collation_database=DEFAULT/*!*/;
|
||||
create table t1 (a int) engine= myisam
|
||||
/*!*/;
|
||||
# at 203
|
||||
<#>
|
||||
<#>
|
||||
<#>
|
||||
<#>
|
||||
<#>
|
||||
DELIMITER ;
|
||||
# End of log file
|
||||
ROLLBACK /* added by mysqlbinlog */;
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -2543,6 +2543,7 @@ BEGIN
|
||||
### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -2724,6 +2725,7 @@ BEGIN
|
||||
### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -3071,6 +3073,7 @@ BEGIN
|
||||
### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=4 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 2
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -3410,6 +3413,7 @@ BEGIN
|
||||
### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -3754,6 +3758,7 @@ BEGIN
|
||||
### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -4096,6 +4101,7 @@ BEGIN
|
||||
### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -4441,6 +4447,7 @@ BEGIN
|
||||
### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */
|
||||
### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */
|
||||
### @79=4 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -4620,6 +4627,7 @@ BEGIN
|
||||
### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -4796,6 +4804,7 @@ BEGIN
|
||||
### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -4975,6 +4984,7 @@ BEGIN
|
||||
### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -5152,6 +5162,7 @@ BEGIN
|
||||
### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */
|
||||
### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */
|
||||
### @79=4 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -5345,6 +5356,7 @@ BEGIN
|
||||
### @1='2008:08:09' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-09' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */
|
||||
### @3=9 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 9
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -5423,6 +5435,7 @@ BEGIN
|
||||
### @1='2008:08:17' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */
|
||||
### @3=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 7
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -5473,6 +5486,7 @@ BEGIN
|
||||
### @1='2008:08:17' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */
|
||||
### @3=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 7
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -5766,6 +5780,7 @@ BEGIN
|
||||
### @1='2008:01:09' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-01-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=19 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 9
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -5835,6 +5850,7 @@ BEGIN
|
||||
### @1='2008:02:09' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-02-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=29 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 9
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -5904,6 +5920,7 @@ BEGIN
|
||||
### @1='2008:03:09' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-03-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=39 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 9
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -6093,6 +6110,7 @@ BEGIN
|
||||
### @1='2038:03:07' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 18
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -6207,6 +6225,7 @@ BEGIN
|
||||
### @1='2038:03:07' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 18
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -6338,6 +6357,7 @@ BEGIN
|
||||
### @1=5 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @3='Wow' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
|
@ -2543,6 +2543,7 @@ BEGIN
|
||||
### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -2727,6 +2728,7 @@ BEGIN
|
||||
### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -3076,6 +3078,7 @@ BEGIN
|
||||
### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=4 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 2
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -3417,6 +3420,7 @@ BEGIN
|
||||
### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -3763,6 +3767,7 @@ BEGIN
|
||||
### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -4107,6 +4112,7 @@ BEGIN
|
||||
### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -4454,6 +4460,7 @@ BEGIN
|
||||
### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */
|
||||
### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */
|
||||
### @79=4 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -4635,6 +4642,7 @@ BEGIN
|
||||
### @77=3 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000111' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -4813,6 +4821,7 @@ BEGIN
|
||||
### @77=1 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000000' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -4994,6 +5003,7 @@ BEGIN
|
||||
### @77=2 /* ENUM(1 byte) meta=63233 nullable=1 is_null=0 */
|
||||
### @78=b'00000110' /* SET(1 bytes) meta=63489 nullable=1 is_null=0 */
|
||||
### @79=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -5173,6 +5183,7 @@ BEGIN
|
||||
### @77=NULL /* ENUM(1 byte) meta=63233 nullable=1 is_null=1 */
|
||||
### @78=NULL /* SET(1 bytes) meta=63489 nullable=1 is_null=1 */
|
||||
### @79=4 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -5368,6 +5379,7 @@ BEGIN
|
||||
### @1='2008:08:09' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-09' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */
|
||||
### @3=9 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 9
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -5448,6 +5460,7 @@ BEGIN
|
||||
### @1='2008:08:17' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */
|
||||
### @3=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 7
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -5500,6 +5513,7 @@ BEGIN
|
||||
### @1='2008:08:17' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-07' /* VARSTRING(24) meta=24 nullable=1 is_null=0 */
|
||||
### @3=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 7
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -5795,6 +5809,7 @@ BEGIN
|
||||
### @1='2008:01:09' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-01-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=19 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 9
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -5866,6 +5881,7 @@ BEGIN
|
||||
### @1='2008:02:09' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-02-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=29 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 9
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -5937,6 +5953,7 @@ BEGIN
|
||||
### @1='2008:03:09' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-03-09' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=39 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 9
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -6128,6 +6145,7 @@ BEGIN
|
||||
### @1='2038:03:07' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 18
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -6244,6 +6262,7 @@ BEGIN
|
||||
### @1='2038:03:07' /* DATE meta=0 nullable=1 is_null=0 */
|
||||
### @2='VARCHAR-03-07' /* VARSTRING(255) meta=255 nullable=1 is_null=0 */
|
||||
### @3=7 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 18
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -6377,6 +6396,7 @@ BEGIN
|
||||
### @1=5 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @3='Wow' /* VARSTRING(60) meta=60 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
|
@ -193,6 +193,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
|
||||
@ -221,6 +222,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
|
||||
@ -232,6 +234,7 @@ BEGIN
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -275,6 +278,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -313,6 +317,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -334,6 +339,7 @@ BEGIN
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -363,6 +369,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
|
||||
@ -391,6 +398,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
|
||||
@ -402,6 +410,7 @@ BEGIN
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -445,6 +454,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -483,6 +493,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=13 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-3' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -504,6 +515,7 @@ BEGIN
|
||||
### WHERE
|
||||
### @1=12 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2='varchar-2' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id 1 end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
|
@ -162,6 +162,7 @@ BEGIN
|
||||
### INSERT INTO `test1`.`t1`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -188,6 +189,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -214,6 +216,7 @@ BEGIN
|
||||
### INSERT INTO `test3`.`t3`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -255,6 +258,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 6
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -281,6 +285,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -309,6 +314,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -386,6 +392,7 @@ BEGIN
|
||||
### INSERT INTO `test1`.`t1`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -551,6 +558,7 @@ BEGIN
|
||||
### INSERT INTO `test1`.`t1`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -575,6 +583,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -599,6 +608,7 @@ BEGIN
|
||||
### INSERT INTO `test3`.`t3`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -636,6 +646,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 6
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -660,6 +671,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -684,6 +696,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -773,6 +786,7 @@ BEGIN
|
||||
### INSERT INTO `test1`.`t1`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -799,6 +813,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -825,6 +840,7 @@ BEGIN
|
||||
### INSERT INTO `test3`.`t3`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -866,6 +882,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 6
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -892,6 +909,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -920,6 +938,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -997,6 +1016,7 @@ BEGIN
|
||||
### INSERT INTO `test1`.`t1`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -1161,6 +1181,7 @@ BEGIN
|
||||
### INSERT INTO `test1`.`t1`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -1184,6 +1205,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -1207,6 +1229,7 @@ BEGIN
|
||||
### INSERT INTO `test3`.`t3`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -1243,6 +1266,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 6
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -1266,6 +1290,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -1289,6 +1314,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
|
@ -18,6 +18,8 @@ DELIMITER /*!*/;
|
||||
ROLLBACK/*!*/;
|
||||
BEGIN
|
||||
/*!*/;
|
||||
# Annotate_rows:
|
||||
#Q> insert into t2 values (@v)
|
||||
SET TIMESTAMP=10000/*!*/;
|
||||
SET @@session.pseudo_thread_id=999999999/*!*/;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
|
||||
@ -114,6 +116,7 @@ BEGIN
|
||||
### INSERT INTO `test`.`t1`
|
||||
### SET
|
||||
### @1='ä(i1)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=XXX/*!*/;
|
||||
@ -134,6 +137,7 @@ BEGIN
|
||||
### INSERT INTO `test`.`t1`
|
||||
### SET
|
||||
### @1='ä(i2)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=XXX/*!*/;
|
||||
@ -154,6 +158,7 @@ BEGIN
|
||||
### INSERT INTO `test`.`t1`
|
||||
### SET
|
||||
### @1='ä(i3)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=XXX/*!*/;
|
||||
@ -174,6 +179,7 @@ BEGIN
|
||||
### INSERT INTO `test`.`t1`
|
||||
### SET
|
||||
### @1='ä(p1)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=XXX/*!*/;
|
||||
@ -194,6 +200,7 @@ BEGIN
|
||||
### INSERT INTO `test`.`t1`
|
||||
### SET
|
||||
### @1='ä(p2)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=XXX/*!*/;
|
||||
@ -214,6 +221,7 @@ BEGIN
|
||||
### INSERT INTO `test`.`t1`
|
||||
### SET
|
||||
### @1='ä(p3)' /* VARSTRING(30) meta=30 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#YYMMDD HH:MM:SS server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=XXX/*!*/;
|
||||
|
@ -79,6 +79,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 2
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -111,6 +112,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 2
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -132,6 +134,7 @@ BEGIN
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -164,6 +167,7 @@ BEGIN
|
||||
### INSERT INTO `new_test3`.`t3`
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 2
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -185,6 +189,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -223,6 +228,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 5
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -243,6 +249,7 @@ BEGIN
|
||||
### DELETE FROM `new_test3`.`t3`
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -313,6 +320,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 2
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -345,6 +353,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 2
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -366,6 +375,7 @@ BEGIN
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -398,6 +408,7 @@ BEGIN
|
||||
### INSERT INTO `new_test3`.`t3`
|
||||
### SET
|
||||
### @1=2 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 2
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -419,6 +430,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -457,6 +469,7 @@ BEGIN
|
||||
### SET
|
||||
### @1=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
### @2=6 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 5
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -477,6 +490,7 @@ BEGIN
|
||||
### DELETE FROM `new_test3`.`t3`
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # CRC32 XXX Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
|
@ -100,6 +100,7 @@ BEGIN
|
||||
### @6='' /* STRING(10) meta=65034 nullable=1 is_null=0 */
|
||||
### @7='' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### @8='' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -125,6 +126,7 @@ BEGIN
|
||||
### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */
|
||||
### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -150,6 +152,7 @@ BEGIN
|
||||
### @6='aaaaaaaaaa' /* STRING(10) meta=65034 nullable=1 is_null=0 */
|
||||
### @7='aaaaaaaaaaaaaaaaaaaa' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### @8='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */
|
||||
# Number of rows: 1
|
||||
# at #
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -203,6 +206,7 @@ BEGIN
|
||||
### @6='abc' /* STRING(10) meta=65034 nullable=1 is_null=0 */
|
||||
### @7='abcdefg' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### @8='abcedfghijklmnopqrstuvwxyz' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */
|
||||
# Number of rows: 2
|
||||
# at #
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -248,6 +252,7 @@ BEGIN
|
||||
### @6='aaaaaaaaaa' /* STRING(10) meta=65034 nullable=1 is_null=0 */
|
||||
### @7='aaaaaaaaaaaaaaaaaaaa' /* VARSTRING(20) meta=20 nullable=1 is_null=0 */
|
||||
### @8='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' /* BLOB/TEXT meta=2 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
COMMIT/*!*/;
|
||||
@ -272,18 +277,23 @@ ROLLBACK/*!*/;
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
|
||||
#Q> INSERT INTO t1 VALUES(0,0,0,0,0,'','','')
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
|
||||
# Number of rows: 1
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
|
||||
#Q> INSERT INTO t1 VALUES(1,2,3,4,5, "abc", "abcdefg", "abcedfghijklmnopqrstuvwxyz")
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
|
||||
# Number of rows: 1
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
|
||||
#Q> INSERT INTO t1 VALUES(127, 32767, 8388607, 2147483647, 9223372036854775807, repeat('a', 10), repeat('a', 20), repeat('a', 255))
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
|
||||
# Number of rows: 1
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
|
||||
#Q> UPDATE t1 SET c01=100 WHERE c02=0 OR c03=3
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
|
||||
# Number of rows: 2
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Annotate_rows:
|
||||
#Q> DELETE FROM t1
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Table_map: `test`.`t1` mapped to number #
|
||||
# Number of rows: 3
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Rotate to master-bin.000002 pos: 4
|
||||
#010909 9:46:40 server id 1 end_log_pos # CRC32 XXX Xid = #
|
||||
BEGIN/*!*/;
|
||||
|
@ -68,15 +68,12 @@ TFtYRxcBAAAAIgAAAKEBAAAQABAAAAAAAAEAAf/+AwAAAA==
|
||||
select * from t1;
|
||||
|
||||
|
||||
# Test that mysqlbinlog stops with an error message when the
|
||||
# --base64-output=never flag is used on a binlog with base64 events.
|
||||
# New mysqlbinlog supports --base64-output=never
|
||||
--echo ==== Test --base64-output=never on a binlog with row events ====
|
||||
|
||||
# mysqlbinlog should fail
|
||||
--replace_regex /#[0-9][0-9][0-9][0-9][0-9][0-9] .*/<#>/ /SET \@\@session.pseudo_thread_id.*/<#>/
|
||||
error 1;
|
||||
exec $MYSQL_BINLOG --base64-output=never suite/binlog/std_data/bug32407.001;
|
||||
# the above line should output the query log event and then stop
|
||||
--replace_regex /#[0-9][0-9][0-9][0-9][0-9][0-9] \N*/<#>/ /SET \@\@session.pseudo_thread_id.*/<#>/
|
||||
exec $MYSQL_BINLOG --base64-output=never --print-row-count=0 --print-row-event-positions=0 suite/binlog/std_data/bug32407.001;
|
||||
|
||||
|
||||
# Test that the following fails cleanly: "First, read a
|
||||
|
@ -438,6 +438,8 @@ INSERT INTO t2 SET b=1;
|
||||
UPDATE t1, t2 SET t1.a=10, t2.a=20;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
flush logs;
|
||||
|
||||
let $MYSQLD_DATADIR= `select @@datadir`;
|
||||
|
||||
--copy_file std_data/old_decimal/t1dec102.frm $MYSQLD_DATADIR/test/t1dec102.frm
|
||||
@ -455,3 +457,8 @@ flush logs;
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9]*[.][0-9]{1,3})[0-9e+-]*[^ ]*(.*(FLOAT|DOUBLE).*[*].)/\1...\2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/
|
||||
--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000001
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
--replace_regex /SQL_LOAD_MB-[0-9]-[0-9]/SQL_LOAD_MB-#-#/ /exec_time=[0-9]*/exec_time=#/ /end_log_pos [0-9]*/end_log_pos #/ /# at [0-9]*/# at #/ /thread_id=[0-9]*/thread_id=#/ /table id [0-9]*/table id #/ /mapped to number [0-9]*/mapped to number #/ /server v [^ ]*/server v #.##.##/ /(@[0-9]*=[0-9]*[.][0-9]{1,3})[0-9e+-]*[^ ]*(.*(FLOAT|DOUBLE).*[*].)/\1...\2/ /CRC32 0x[0-9a-f]*/CRC32 XXX/
|
||||
--error 1
|
||||
--exec $MYSQL_BINLOG --base64-output=decode-rows -v -v $MYSQLD_DATADIR/master-bin.000002 2>&1
|
||||
|
@ -163,6 +163,7 @@ BEGIN
|
||||
### INSERT INTO `test1`.`t1`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -189,6 +190,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -215,6 +217,7 @@ BEGIN
|
||||
### INSERT INTO `test3`.`t3`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -256,6 +259,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 6
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -282,6 +286,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -310,6 +315,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -387,6 +393,7 @@ BEGIN
|
||||
### INSERT INTO `test1`.`t1`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -551,6 +558,7 @@ BEGIN
|
||||
### INSERT INTO `test1`.`t1`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -574,6 +582,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -597,6 +606,7 @@ BEGIN
|
||||
### INSERT INTO `test3`.`t3`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -633,6 +643,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 6
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -656,6 +667,7 @@ BEGIN
|
||||
### INSERT INTO `test2`.`t2`
|
||||
### SET
|
||||
### @1=3 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
@ -679,6 +691,7 @@ BEGIN
|
||||
### DELETE FROM `test2`.`t2`
|
||||
### WHERE
|
||||
### @1=1 /* INT meta=0 nullable=1 is_null=0 */
|
||||
# Number of rows: 3
|
||||
# at #
|
||||
#010909 4:46:40 server id # end_log_pos # Query thread_id=# exec_time=# error_code=0
|
||||
SET TIMESTAMP=1000000000/*!*/;
|
||||
|
@ -1 +1 @@
|
||||
--binlog-row-event-max-size=4294967295
|
||||
--binlog-row-event-max-size=4294967040
|
||||
|
@ -2,6 +2,8 @@
|
||||
--source include/have_log_bin.inc
|
||||
--source include/binlog_start_pos.inc
|
||||
|
||||
reset master;
|
||||
|
||||
--let $pos=`select $binlog_start_pos + 73`
|
||||
|
||||
--let $binlog_file=query_get_value(SHOW MASTER STATUS, File, 1)
|
||||
|
@ -146,4 +146,3 @@ DROP TABLE t1;
|
||||
# NOTE: If you want to see the *huge* mysqlbinlog output, disable next line:
|
||||
#
|
||||
--remove_file $MYSQLTEST_VARDIR/$mysqlbinlog_output
|
||||
|
||||
|
@ -261,7 +261,7 @@ set global sql_mode=default;
|
||||
#
|
||||
|
||||
--error 1
|
||||
--exec $MYSQL_BINLOG --read-from-remote-server --ssl-ca --user=root --host=localhost nobinlog.111111
|
||||
--exec $MYSQL_BINLOG --read-from-remote-server --ssl-ca --user=root --host=localhost nobinlog.111111 2>&1
|
||||
|
||||
# Wait till we reached the initial number of concurrent sessions
|
||||
--source include/wait_until_count_sessions.inc
|
||||
|
@ -249,18 +249,16 @@ my_off_t my_b_filelength(IO_CACHE *info)
|
||||
}
|
||||
|
||||
|
||||
size_t
|
||||
my_bool
|
||||
my_b_write_backtick_quote(IO_CACHE *info, const char *str, size_t len)
|
||||
{
|
||||
const uchar *start;
|
||||
const uchar *p= (const uchar *)str;
|
||||
const uchar *end= p + len;
|
||||
size_t count;
|
||||
size_t total= 0;
|
||||
|
||||
if (my_b_write(info, (uchar *)"`", 1))
|
||||
return (size_t)-1;
|
||||
++total;
|
||||
return 1;
|
||||
for (;;)
|
||||
{
|
||||
start= p;
|
||||
@ -269,34 +267,31 @@ my_b_write_backtick_quote(IO_CACHE *info, const char *str, size_t len)
|
||||
count= p - start;
|
||||
if (count && my_b_write(info, start, count))
|
||||
return (size_t)-1;
|
||||
total+= count;
|
||||
if (p >= end)
|
||||
break;
|
||||
if (my_b_write(info, (uchar *)"``", 2))
|
||||
return (size_t)-1;
|
||||
total+= 2;
|
||||
++p;
|
||||
}
|
||||
if (my_b_write(info, (uchar *)"`", 1))
|
||||
return (size_t)-1;
|
||||
++total;
|
||||
return total;
|
||||
return (my_b_write(info, (uchar *)"`", 1));
|
||||
}
|
||||
|
||||
/*
|
||||
Simple printf version. Supports '%s', '%d', '%u', "%ld" and "%lu"
|
||||
Used for logging in MySQL
|
||||
returns number of written character, or (size_t) -1 on error
|
||||
Used for logging in MariaDB
|
||||
|
||||
@return 0 ok
|
||||
1 error
|
||||
*/
|
||||
|
||||
size_t my_b_printf(IO_CACHE *info, const char* fmt, ...)
|
||||
my_bool my_b_printf(IO_CACHE *info, const char* fmt, ...)
|
||||
{
|
||||
size_t result;
|
||||
va_list args;
|
||||
va_start(args,fmt);
|
||||
result=my_b_vprintf(info, fmt, args);
|
||||
va_end(args);
|
||||
return result;
|
||||
return result == (size_t) -1;
|
||||
}
|
||||
|
||||
|
||||
|
56
sql/log.cc
56
sql/log.cc
@ -2992,7 +2992,6 @@ bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time,
|
||||
mysql_mutex_lock(&LOCK_log);
|
||||
if (is_open())
|
||||
{ // Safety agains reopen
|
||||
int tmp_errno= 0;
|
||||
char buff[80], *end;
|
||||
char query_time_buff[22+7], lock_time_buff[22+7];
|
||||
size_t buff_len;
|
||||
@ -3014,16 +3013,13 @@ bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time,
|
||||
|
||||
/* Note that my_b_write() assumes it knows the length for this */
|
||||
if (my_b_write(&log_file, (uchar*) buff, buff_len))
|
||||
tmp_errno= errno;
|
||||
goto err;
|
||||
}
|
||||
const uchar uh[]= "# User@Host: ";
|
||||
if (my_b_write(&log_file, uh, sizeof(uh) - 1))
|
||||
tmp_errno= errno;
|
||||
if (my_b_write(&log_file, (uchar*) user_host, user_host_len))
|
||||
tmp_errno= errno;
|
||||
if (my_b_write(&log_file, (uchar*) "\n", 1))
|
||||
tmp_errno= errno;
|
||||
}
|
||||
if (my_b_write(&log_file, uh, sizeof(uh) - 1) ||
|
||||
my_b_write(&log_file, (uchar*) user_host, user_host_len) ||
|
||||
my_b_write(&log_file, (uchar*) "\n", 1))
|
||||
goto err;
|
||||
|
||||
/* For slow query log */
|
||||
sprintf(query_time_buff, "%.6f", ulonglong2double(query_utime)/1000000.0);
|
||||
@ -3039,9 +3035,9 @@ bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time,
|
||||
(ulong) thd->get_examined_row_count(),
|
||||
thd->get_stmt_da()->is_ok() ?
|
||||
(ulong) thd->get_stmt_da()->affected_rows() :
|
||||
0) == (size_t) -1)
|
||||
tmp_errno= errno;
|
||||
if ((thd->variables.log_slow_verbosity & LOG_SLOW_VERBOSITY_QUERY_PLAN) &&
|
||||
0))
|
||||
goto err;
|
||||
if ((thd->variables.log_slow_verbosity & LOG_SLOW_VERBOSITY_QUERY_PLAN) &&
|
||||
(thd->query_plan_flags &
|
||||
(QPLAN_FULL_SCAN | QPLAN_FULL_JOIN | QPLAN_TMP_TABLE |
|
||||
QPLAN_TMP_DISK | QPLAN_FILESORT | QPLAN_FILESORT_DISK)) &&
|
||||
@ -3060,21 +3056,22 @@ bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time,
|
||||
thd->query_plan_fsort_passes,
|
||||
((thd->query_plan_flags & QPLAN_FILESORT_PRIORITY_QUEUE) ?
|
||||
"Yes" : "No")
|
||||
) == (size_t) -1)
|
||||
tmp_errno= errno;
|
||||
))
|
||||
goto err;
|
||||
if (thd->variables.log_slow_verbosity & LOG_SLOW_VERBOSITY_EXPLAIN &&
|
||||
thd->lex->explain)
|
||||
{
|
||||
StringBuffer<128> buf;
|
||||
DBUG_ASSERT(!thd->free_list);
|
||||
if (!print_explain_for_slow_log(thd->lex, thd, &buf))
|
||||
my_b_printf(&log_file, "%s", buf.c_ptr_safe());
|
||||
if (my_b_printf(&log_file, "%s", buf.c_ptr_safe()))
|
||||
goto err;
|
||||
thd->free_items();
|
||||
}
|
||||
if (thd->db && strcmp(thd->db, db))
|
||||
{ // Database changed
|
||||
if (my_b_printf(&log_file,"use %s;\n",thd->db) == (size_t) -1)
|
||||
tmp_errno= errno;
|
||||
if (my_b_printf(&log_file,"use %s;\n",thd->db))
|
||||
goto err;
|
||||
strmov(db,thd->db);
|
||||
}
|
||||
if (thd->stmt_depends_on_first_successful_insert_id_in_prev_stmt)
|
||||
@ -3110,7 +3107,7 @@ bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time,
|
||||
*end='\n';
|
||||
if (my_b_write(&log_file, (uchar*) "SET ", 4) ||
|
||||
my_b_write(&log_file, (uchar*) buff + 1, (uint) (end-buff)))
|
||||
tmp_errno= errno;
|
||||
goto err;
|
||||
}
|
||||
if (is_command)
|
||||
{
|
||||
@ -3119,24 +3116,27 @@ bool MYSQL_QUERY_LOG::write(THD *thd, time_t current_time,
|
||||
DBUG_EXECUTE_IF("simulate_slow_log_write_error",
|
||||
{DBUG_SET("+d,simulate_file_write_error");});
|
||||
if(my_b_write(&log_file, (uchar*) buff, buff_len))
|
||||
tmp_errno= errno;
|
||||
goto err;
|
||||
}
|
||||
if (my_b_write(&log_file, (uchar*) sql_text, sql_text_len) ||
|
||||
my_b_write(&log_file, (uchar*) ";\n",2) ||
|
||||
flush_io_cache(&log_file))
|
||||
tmp_errno= errno;
|
||||
if (tmp_errno)
|
||||
{
|
||||
error= 1;
|
||||
if (! write_error)
|
||||
{
|
||||
write_error= 1;
|
||||
sql_print_error(ER_THD(thd, ER_ERROR_ON_WRITE), name, tmp_errno);
|
||||
}
|
||||
goto err;
|
||||
|
||||
}
|
||||
}
|
||||
end:
|
||||
mysql_mutex_unlock(&LOCK_log);
|
||||
DBUG_RETURN(error);
|
||||
|
||||
err:
|
||||
error= 1;
|
||||
if (! write_error)
|
||||
{
|
||||
write_error= 1;
|
||||
sql_print_error(ER_THD(thd, ER_ERROR_ON_WRITE), name, errno);
|
||||
}
|
||||
goto end;
|
||||
}
|
||||
|
||||
|
||||
|
1613
sql/log_event.cc
1613
sql/log_event.cc
File diff suppressed because it is too large
Load Diff
217
sql/log_event.h
217
sql/log_event.h
@ -802,6 +802,8 @@ class Format_description_log_event;
|
||||
class Relay_log_info;
|
||||
class binlog_cache_data;
|
||||
|
||||
bool copy_event_cache_to_file_and_reinit(IO_CACHE *cache, FILE *file);
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
enum enum_base64_output_mode {
|
||||
BASE64_OUTPUT_NEVER= 0,
|
||||
@ -813,6 +815,8 @@ enum enum_base64_output_mode {
|
||||
BASE64_OUTPUT_MODE_COUNT
|
||||
};
|
||||
|
||||
bool copy_event_cache_to_string_and_reinit(IO_CACHE *cache, LEX_STRING *to);
|
||||
|
||||
/*
|
||||
A structure for mysqlbinlog to know how to print events
|
||||
|
||||
@ -832,33 +836,63 @@ typedef struct st_print_event_info
|
||||
that was printed. We cache these so that we don't have to print
|
||||
them if they are unchanged.
|
||||
*/
|
||||
// TODO: have the last catalog here ??
|
||||
char db[FN_REFLEN+1]; // TODO: make this a LEX_STRING when thd->db is
|
||||
bool flags2_inited;
|
||||
uint32 flags2;
|
||||
bool sql_mode_inited;
|
||||
sql_mode_t sql_mode; /* must be same as THD.variables.sql_mode */
|
||||
ulong auto_increment_increment, auto_increment_offset;
|
||||
bool charset_inited;
|
||||
char charset[6]; // 3 variables, each of them storable in 2 bytes
|
||||
char time_zone_str[MAX_TIME_ZONE_NAME_LENGTH];
|
||||
char delimiter[16];
|
||||
sql_mode_t sql_mode; /* must be same as THD.variables.sql_mode */
|
||||
my_thread_id thread_id;
|
||||
ulonglong row_events;
|
||||
ulong auto_increment_increment, auto_increment_offset;
|
||||
uint lc_time_names_number;
|
||||
uint charset_database_number;
|
||||
my_thread_id thread_id;
|
||||
bool thread_id_printed;
|
||||
uint verbose;
|
||||
uint32 flags2;
|
||||
uint32 server_id;
|
||||
bool server_id_printed;
|
||||
uint32 domain_id;
|
||||
uint8 common_header_len;
|
||||
enum_base64_output_mode base64_output_mode;
|
||||
my_off_t hexdump_from;
|
||||
|
||||
table_mapping m_table_map;
|
||||
table_mapping m_table_map_ignored;
|
||||
bool flags2_inited;
|
||||
bool sql_mode_inited;
|
||||
bool charset_inited;
|
||||
bool thread_id_printed;
|
||||
bool server_id_printed;
|
||||
bool domain_id_printed;
|
||||
bool allow_parallel;
|
||||
bool allow_parallel_printed;
|
||||
|
||||
bool found_row_event;
|
||||
bool print_row_count;
|
||||
/* Settings on how to print the events */
|
||||
bool short_form;
|
||||
/*
|
||||
This is set whenever a Format_description_event is printed.
|
||||
Later, when an event is printed in base64, this flag is tested: if
|
||||
no Format_description_event has been seen, it is unsafe to print
|
||||
the base64 event, so an error message is generated.
|
||||
*/
|
||||
bool printed_fd_event;
|
||||
/*
|
||||
Track when @@skip_replication changes so we need to output a SET
|
||||
statement for it.
|
||||
*/
|
||||
int skip_replication;
|
||||
bool skip_replication;
|
||||
|
||||
/*
|
||||
These two caches are used by the row-based replication events to
|
||||
collect the header information and the main body of the events
|
||||
making up a statement.
|
||||
*/
|
||||
IO_CACHE head_cache;
|
||||
IO_CACHE body_cache;
|
||||
#ifdef WHEN_FLASHBACK_REVIEW_READY
|
||||
/* Storing the SQL for reviewing */
|
||||
IO_CACHE review_sql_cache;
|
||||
#endif
|
||||
FILE *file;
|
||||
st_print_event_info();
|
||||
|
||||
~st_print_event_info() {
|
||||
@ -874,37 +908,12 @@ typedef struct st_print_event_info
|
||||
&& my_b_inited(&review_sql_cache)
|
||||
#endif
|
||||
; }
|
||||
|
||||
|
||||
/* Settings on how to print the events */
|
||||
bool short_form;
|
||||
enum_base64_output_mode base64_output_mode;
|
||||
/*
|
||||
This is set whenever a Format_description_event is printed.
|
||||
Later, when an event is printed in base64, this flag is tested: if
|
||||
no Format_description_event has been seen, it is unsafe to print
|
||||
the base64 event, so an error message is generated.
|
||||
*/
|
||||
bool printed_fd_event;
|
||||
my_off_t hexdump_from;
|
||||
uint8 common_header_len;
|
||||
char delimiter[16];
|
||||
|
||||
uint verbose;
|
||||
table_mapping m_table_map;
|
||||
table_mapping m_table_map_ignored;
|
||||
|
||||
/*
|
||||
These two caches are used by the row-based replication events to
|
||||
collect the header information and the main body of the events
|
||||
making up a statement.
|
||||
*/
|
||||
IO_CACHE head_cache;
|
||||
IO_CACHE body_cache;
|
||||
#ifdef WHEN_FLASHBACK_REVIEW_READY
|
||||
/* Storing the SQL for reviewing */
|
||||
IO_CACHE review_sql_cache;
|
||||
#endif
|
||||
void flush_for_error()
|
||||
{
|
||||
if (!copy_event_cache_to_file_and_reinit(&head_cache, file))
|
||||
copy_event_cache_to_file_and_reinit(&body_cache, file);
|
||||
fflush(file);
|
||||
}
|
||||
} PRINT_EVENT_INFO;
|
||||
#endif
|
||||
|
||||
@ -1250,11 +1259,11 @@ public:
|
||||
Log_event() : temp_buf(0), when(0), flags(0) {}
|
||||
ha_checksum crc;
|
||||
/* print*() functions are used by mysqlbinlog */
|
||||
virtual void print(FILE* file, PRINT_EVENT_INFO* print_event_info) = 0;
|
||||
void print_timestamp(IO_CACHE* file, time_t *ts = 0);
|
||||
void print_header(IO_CACHE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
virtual bool print(FILE* file, PRINT_EVENT_INFO* print_event_info) = 0;
|
||||
bool print_timestamp(IO_CACHE* file, time_t *ts = 0);
|
||||
bool print_header(IO_CACHE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
bool is_more);
|
||||
void print_base64(IO_CACHE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
bool print_base64(IO_CACHE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
bool is_more);
|
||||
#endif /* MYSQL_SERVER */
|
||||
|
||||
@ -2113,8 +2122,8 @@ public:
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print_query_header(IO_CACHE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print_query_header(IO_CACHE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Query_log_event();
|
||||
@ -2453,7 +2462,7 @@ protected:
|
||||
const Format_description_log_event* description_event);
|
||||
|
||||
public:
|
||||
void print_query(THD *thd, bool need_db, const char *cs, String *buf,
|
||||
bool print_query(THD *thd, bool need_db, const char *cs, String *buf,
|
||||
my_off_t *fn_start, my_off_t *fn_end,
|
||||
const char *qualify_db);
|
||||
my_thread_id thread_id;
|
||||
@ -2519,8 +2528,8 @@ public:
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info, bool commented);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info, bool commented);
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -2617,7 +2626,7 @@ public:
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
Start_log_event_v3() {}
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Start_log_event_v3(const char* buf, uint event_len,
|
||||
@ -2686,7 +2695,7 @@ public:
|
||||
write_data(nonce, BINLOG_NONCE_LENGTH);
|
||||
}
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Start_encryption_log_event(
|
||||
@ -2874,7 +2883,7 @@ Intvar_log_event(THD* thd_arg,uchar type_arg, ulonglong val_arg,
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Intvar_log_event(const char* buf,
|
||||
@ -2955,7 +2964,7 @@ class Rand_log_event: public Log_event
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Rand_log_event(const char* buf,
|
||||
@ -3005,7 +3014,7 @@ class Xid_log_event: public Log_event
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Xid_log_event(const char* buf,
|
||||
@ -3067,7 +3076,7 @@ public:
|
||||
}
|
||||
void pack_info(Protocol* protocol);
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
User_var_log_event(const char* buf, uint event_len,
|
||||
@ -3115,7 +3124,7 @@ public:
|
||||
Stop_log_event() :Log_event()
|
||||
{}
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Stop_log_event(const char* buf,
|
||||
@ -3211,7 +3220,7 @@ public:
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Rotate_log_event(const char* buf, uint event_len,
|
||||
@ -3251,7 +3260,7 @@ public:
|
||||
void pack_info(Protocol *protocol);
|
||||
#endif
|
||||
#else
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
Binlog_checkpoint_log_event(const char *buf, uint event_len,
|
||||
const Format_description_log_event *description_event);
|
||||
@ -3376,7 +3385,7 @@ public:
|
||||
virtual enum_skip_reason do_shall_skip(rpl_group_info *rgi);
|
||||
#endif
|
||||
#else
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
Gtid_log_event(const char *buf, uint event_len,
|
||||
const Format_description_log_event *description_event);
|
||||
@ -3490,7 +3499,7 @@ public:
|
||||
void pack_info(Protocol *protocol);
|
||||
#endif
|
||||
#else
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
Gtid_list_log_event(const char *buf, uint event_len,
|
||||
const Format_description_log_event *description_event);
|
||||
@ -3554,8 +3563,8 @@ public:
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
bool enable_local);
|
||||
#endif
|
||||
|
||||
@ -3627,7 +3636,7 @@ public:
|
||||
virtual int get_create_or_append() const;
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Append_block_log_event(const char* buf, uint event_len,
|
||||
@ -3667,8 +3676,8 @@ public:
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
bool enable_local);
|
||||
#endif
|
||||
|
||||
@ -3708,7 +3717,7 @@ public:
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
#endif
|
||||
|
||||
Execute_load_log_event(const char* buf, uint event_len,
|
||||
@ -3804,9 +3813,9 @@ public:
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
#else
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
/* Prints the query as LOAD DATA LOCAL and with rewritten filename */
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info,
|
||||
const char *local_fname);
|
||||
#endif
|
||||
Execute_load_query_log_event(const char* buf, uint event_len,
|
||||
@ -3851,7 +3860,7 @@ public:
|
||||
/* constructor for hopelessly corrupted events */
|
||||
Unknown_log_event(): Log_event(), what(ENCRYPTED) {}
|
||||
~Unknown_log_event() {}
|
||||
void print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
bool print(FILE* file, PRINT_EVENT_INFO* print_event_info);
|
||||
Log_event_type get_type_code() { return UNKNOWN_EVENT;}
|
||||
bool is_valid() const { return 1; }
|
||||
};
|
||||
@ -3896,7 +3905,7 @@ public:
|
||||
#endif
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
virtual void print(FILE*, PRINT_EVENT_INFO*);
|
||||
virtual bool print(FILE*, PRINT_EVENT_INFO*);
|
||||
#endif
|
||||
|
||||
#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION)
|
||||
@ -4316,7 +4325,7 @@ public:
|
||||
#endif
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
virtual void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
virtual bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
|
||||
|
||||
@ -4437,15 +4446,21 @@ public:
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
/* not for direct call, each derived has its own ::print() */
|
||||
virtual void print(FILE *file, PRINT_EVENT_INFO *print_event_info)= 0;
|
||||
virtual bool print(FILE *file, PRINT_EVENT_INFO *print_event_info)= 0;
|
||||
void change_to_flashback_event(PRINT_EVENT_INFO *print_event_info, uchar *rows_buff, Log_event_type ev_type);
|
||||
void print_verbose(IO_CACHE *file,
|
||||
bool print_verbose(IO_CACHE *file,
|
||||
PRINT_EVENT_INFO *print_event_info);
|
||||
size_t print_verbose_one_row(IO_CACHE *file, table_def *td,
|
||||
PRINT_EVENT_INFO *print_event_info,
|
||||
MY_BITMAP *cols_bitmap,
|
||||
const uchar *ptr, const uchar *prefix,
|
||||
const my_bool no_fill_output= 0); // if no_fill_output=1, then print result is unnecessary
|
||||
size_t calc_row_event_length(table_def *td,
|
||||
PRINT_EVENT_INFO *print_event_info,
|
||||
MY_BITMAP *cols_bitmap,
|
||||
const uchar *value);
|
||||
void count_row_events(PRINT_EVENT_INFO *print_event_info);
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef MYSQL_SERVER
|
||||
@ -4552,7 +4567,7 @@ protected:
|
||||
void uncompress_buf();
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
void print_helper(FILE *, PRINT_EVENT_INFO *, char const *const name);
|
||||
bool print_helper(FILE *, PRINT_EVENT_INFO *, char const *const name);
|
||||
#endif
|
||||
|
||||
#ifdef MYSQL_SERVER
|
||||
@ -4756,7 +4771,7 @@ private:
|
||||
virtual Log_event_type get_general_type_code() { return (Log_event_type)TYPE_CODE; }
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
|
||||
#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
|
||||
@ -4780,7 +4795,7 @@ public:
|
||||
#endif
|
||||
private:
|
||||
#if defined(MYSQL_CLIENT)
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -4843,7 +4858,7 @@ protected:
|
||||
virtual Log_event_type get_general_type_code() { return (Log_event_type)TYPE_CODE; }
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
|
||||
#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
|
||||
@ -4867,7 +4882,7 @@ public:
|
||||
#endif
|
||||
private:
|
||||
#if defined(MYSQL_CLIENT)
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -4927,7 +4942,7 @@ protected:
|
||||
virtual Log_event_type get_general_type_code() { return (Log_event_type)TYPE_CODE; }
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
|
||||
#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
|
||||
@ -4950,7 +4965,7 @@ public:
|
||||
#endif
|
||||
private:
|
||||
#if defined(MYSQL_CLIENT)
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
};
|
||||
|
||||
@ -5044,7 +5059,7 @@ public:
|
||||
virtual ~Incident_log_event();
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
virtual void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
virtual bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
|
||||
#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)
|
||||
@ -5111,7 +5126,7 @@ public:
|
||||
#endif
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
virtual void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
virtual bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
|
||||
virtual Log_event_type get_type_code() { return IGNORABLE_LOG_EVENT; }
|
||||
@ -5121,38 +5136,6 @@ public:
|
||||
virtual int get_data_size() { return IGNORABLE_HEADER_LEN; }
|
||||
};
|
||||
|
||||
|
||||
static inline bool copy_event_cache_to_string_and_reinit(IO_CACHE *cache, LEX_STRING *to)
|
||||
{
|
||||
String tmp;
|
||||
|
||||
reinit_io_cache(cache, READ_CACHE, 0L, FALSE, FALSE);
|
||||
if (tmp.append(cache, (uint32)cache->end_of_file))
|
||||
goto err;
|
||||
reinit_io_cache(cache, WRITE_CACHE, 0, FALSE, TRUE);
|
||||
|
||||
/*
|
||||
Can't change the order, because the String::release() will clear the
|
||||
length.
|
||||
*/
|
||||
to->length= tmp.length();
|
||||
to->str= tmp.release();
|
||||
|
||||
return false;
|
||||
|
||||
err:
|
||||
perror("Out of memory: can't allocate memory in copy_event_cache_to_string_and_reinit().");
|
||||
return true;
|
||||
}
|
||||
|
||||
static inline bool copy_event_cache_to_file_and_reinit(IO_CACHE *cache,
|
||||
FILE *file)
|
||||
{
|
||||
return
|
||||
my_b_copy_to_file(cache, file) ||
|
||||
reinit_io_cache(cache, WRITE_CACHE, 0, FALSE, TRUE);
|
||||
}
|
||||
|
||||
#ifdef MYSQL_SERVER
|
||||
/*****************************************************************************
|
||||
|
||||
|
@ -1845,7 +1845,7 @@ void Old_rows_log_event::pack_info(Protocol *protocol)
|
||||
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
void Old_rows_log_event::print_helper(FILE *file,
|
||||
bool Old_rows_log_event::print_helper(FILE *file,
|
||||
PRINT_EVENT_INFO *print_event_info,
|
||||
char const *const name)
|
||||
{
|
||||
@ -1854,18 +1854,23 @@ void Old_rows_log_event::print_helper(FILE *file,
|
||||
if (!print_event_info->short_form)
|
||||
{
|
||||
bool const last_stmt_event= get_flags(STMT_END_F);
|
||||
print_header(head, print_event_info, !last_stmt_event);
|
||||
my_b_printf(head, "\t%s: table id %lu%s\n",
|
||||
name, m_table_id,
|
||||
last_stmt_event ? " flags: STMT_END_F" : "");
|
||||
print_base64(body, print_event_info, !last_stmt_event);
|
||||
if (print_header(head, print_event_info, !last_stmt_event) ||
|
||||
my_b_printf(head, "\t%s: table id %lu%s\n",
|
||||
name, m_table_id,
|
||||
last_stmt_event ? " flags: STMT_END_F" : "") ||
|
||||
print_base64(body, print_event_info, !last_stmt_event))
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (get_flags(STMT_END_F))
|
||||
{
|
||||
copy_event_cache_to_file_and_reinit(head, file);
|
||||
copy_event_cache_to_file_and_reinit(body, file);
|
||||
if (copy_event_cache_to_file_and_reinit(head, file) ||
|
||||
copy_event_cache_to_file_and_reinit(body, file))
|
||||
goto err;
|
||||
}
|
||||
return 0;
|
||||
err:
|
||||
return 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2491,10 +2496,11 @@ Write_rows_log_event_old::do_exec_row(rpl_group_info *rgi)
|
||||
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
void Write_rows_log_event_old::print(FILE *file,
|
||||
bool Write_rows_log_event_old::print(FILE *file,
|
||||
PRINT_EVENT_INFO* print_event_info)
|
||||
{
|
||||
Old_rows_log_event::print_helper(file, print_event_info, "Write_rows_old");
|
||||
return Old_rows_log_event::print_helper(file, print_event_info,
|
||||
"Write_rows_old");
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2598,10 +2604,11 @@ int Delete_rows_log_event_old::do_exec_row(rpl_group_info *rgi)
|
||||
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
void Delete_rows_log_event_old::print(FILE *file,
|
||||
bool Delete_rows_log_event_old::print(FILE *file,
|
||||
PRINT_EVENT_INFO* print_event_info)
|
||||
{
|
||||
Old_rows_log_event::print_helper(file, print_event_info, "Delete_rows_old");
|
||||
return Old_rows_log_event::print_helper(file, print_event_info,
|
||||
"Delete_rows_old");
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -2736,9 +2743,10 @@ Update_rows_log_event_old::do_exec_row(rpl_group_info *rgi)
|
||||
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
void Update_rows_log_event_old::print(FILE *file,
|
||||
bool Update_rows_log_event_old::print(FILE *file,
|
||||
PRINT_EVENT_INFO* print_event_info)
|
||||
{
|
||||
Old_rows_log_event::print_helper(file, print_event_info, "Update_rows_old");
|
||||
return Old_rows_log_event::print_helper(file, print_event_info,
|
||||
"Update_rows_old");
|
||||
}
|
||||
#endif
|
||||
|
@ -116,7 +116,7 @@ public:
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
/* not for direct call, each derived has its own ::print() */
|
||||
virtual void print(FILE *file, PRINT_EVENT_INFO *print_event_info)= 0;
|
||||
virtual bool print(FILE *file, PRINT_EVENT_INFO *print_event_info)= 0;
|
||||
#endif
|
||||
|
||||
#ifndef MYSQL_CLIENT
|
||||
@ -166,7 +166,7 @@ protected:
|
||||
const Format_description_log_event *description_event);
|
||||
|
||||
#ifdef MYSQL_CLIENT
|
||||
void print_helper(FILE *, PRINT_EVENT_INFO *, char const *const name);
|
||||
bool print_helper(FILE *, PRINT_EVENT_INFO *, char const *const name);
|
||||
#endif
|
||||
|
||||
#ifndef MYSQL_CLIENT
|
||||
@ -379,7 +379,7 @@ public:
|
||||
|
||||
private:
|
||||
#ifdef MYSQL_CLIENT
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
|
||||
#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION)
|
||||
@ -455,7 +455,7 @@ public:
|
||||
|
||||
protected:
|
||||
#ifdef MYSQL_CLIENT
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
|
||||
#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION)
|
||||
@ -529,7 +529,7 @@ public:
|
||||
|
||||
protected:
|
||||
#ifdef MYSQL_CLIENT
|
||||
void print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
bool print(FILE *file, PRINT_EVENT_INFO *print_event_info);
|
||||
#endif
|
||||
|
||||
#if !defined(MYSQL_CLIENT) && defined(HAVE_REPLICATION)
|
||||
|
@ -7259,7 +7259,7 @@ struct my_option my_long_options[]=
|
||||
"The value has to be a multiple of 256.",
|
||||
&opt_binlog_rows_event_max_size, &opt_binlog_rows_event_max_size,
|
||||
0, GET_ULONG, REQUIRED_ARG,
|
||||
/* def_value */ 8192, /* min_value */ 256, /* max_value */ ULONG_MAX,
|
||||
/* def_value */ 8192, /* min_value */ 256, /* max_value */ UINT32_MAX-1,
|
||||
/* sub_size */ 0, /* block_size */ 256,
|
||||
/* app_type */ 0
|
||||
},
|
||||
|
@ -1460,7 +1460,6 @@ rpl_binlog_state::write_to_iocache(IO_CACHE *dest)
|
||||
mysql_mutex_lock(&LOCK_binlog_state);
|
||||
for (i= 0; i < hash.records; ++i)
|
||||
{
|
||||
size_t res;
|
||||
element *e= (element *)my_hash_element(&hash, i);
|
||||
if (!e->last_gtid)
|
||||
{
|
||||
@ -1480,8 +1479,8 @@ rpl_binlog_state::write_to_iocache(IO_CACHE *dest)
|
||||
gtid= e->last_gtid;
|
||||
|
||||
longlong10_to_str(gtid->seq_no, buf, 10);
|
||||
res= my_b_printf(dest, "%u-%u-%s\n", gtid->domain_id, gtid->server_id, buf);
|
||||
if (res == (size_t) -1)
|
||||
if (my_b_printf(dest, "%u-%u-%s\n", gtid->domain_id, gtid->server_id,
|
||||
buf))
|
||||
{
|
||||
res= 1;
|
||||
goto end;
|
||||
|
@ -607,7 +607,7 @@ bool String::append(IO_CACHE* file, uint32 arg_length)
|
||||
return TRUE;
|
||||
if (my_b_read(file, (uchar*) Ptr + str_length, arg_length))
|
||||
{
|
||||
shrink(str_length);
|
||||
shrink(str_length ? str_length : 1);
|
||||
return TRUE;
|
||||
}
|
||||
str_length+=arg_length;
|
||||
|
Loading…
x
Reference in New Issue
Block a user