mirror of
https://github.com/MariaDB/server.git
synced 2025-08-08 11:22:35 +03:00
mysqlbin --hexdump patch 3
client/mysqlbinlog.cc: Collapsing multiple arguments to print function into the last_event_info struct sql/log_event.cc: Only print header is length=19 (otherwise print in standard hexdump format) Collapsing multiple arguments into last_event_info struct sql/log_event.h: Collapsing multiple arguments into last_event_info struct
This commit is contained in:
@@ -496,6 +496,7 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev,
|
|||||||
char ll_buff[21];
|
char ll_buff[21];
|
||||||
Log_event_type ev_type= ev->get_type_code();
|
Log_event_type ev_type= ev->get_type_code();
|
||||||
DBUG_ENTER("process_event");
|
DBUG_ENTER("process_event");
|
||||||
|
last_event_info->short_form= short_form;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Format events are not concerned by --offset and such, we always need to
|
Format events are not concerned by --offset and such, we always need to
|
||||||
@@ -524,14 +525,16 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev,
|
|||||||
if (!short_form)
|
if (!short_form)
|
||||||
fprintf(result_file, "# at %s\n",llstr(pos,ll_buff));
|
fprintf(result_file, "# at %s\n",llstr(pos,ll_buff));
|
||||||
|
|
||||||
/* Set pos to 0 if hexdump is disabled */
|
if (!opt_hexdump)
|
||||||
if (!opt_hexdump) pos= 0;
|
last_event_info->hexdump_from= 0; /* Disabled */
|
||||||
|
else
|
||||||
|
last_event_info->hexdump_from= pos;
|
||||||
|
|
||||||
switch (ev_type) {
|
switch (ev_type) {
|
||||||
case QUERY_EVENT:
|
case QUERY_EVENT:
|
||||||
if (check_database(((Query_log_event*)ev)->db))
|
if (check_database(((Query_log_event*)ev)->db))
|
||||||
goto end;
|
goto end;
|
||||||
ev->print(result_file, short_form, pos, last_event_info);
|
ev->print(result_file, last_event_info);
|
||||||
break;
|
break;
|
||||||
case CREATE_FILE_EVENT:
|
case CREATE_FILE_EVENT:
|
||||||
{
|
{
|
||||||
@@ -551,7 +554,7 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev,
|
|||||||
filename and use LOCAL), prepared in the 'case EXEC_LOAD_EVENT'
|
filename and use LOCAL), prepared in the 'case EXEC_LOAD_EVENT'
|
||||||
below.
|
below.
|
||||||
*/
|
*/
|
||||||
ce->print(result_file, short_form, pos, last_event_info, TRUE);
|
ce->print(result_file, last_event_info, TRUE);
|
||||||
|
|
||||||
// If this binlog is not 3.23 ; why this test??
|
// If this binlog is not 3.23 ; why this test??
|
||||||
if (description_event->binlog_version >= 3)
|
if (description_event->binlog_version >= 3)
|
||||||
@@ -563,13 +566,13 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case APPEND_BLOCK_EVENT:
|
case APPEND_BLOCK_EVENT:
|
||||||
ev->print(result_file, short_form, pos, last_event_info);
|
ev->print(result_file, last_event_info);
|
||||||
if (load_processor.process((Append_block_log_event*) ev))
|
if (load_processor.process((Append_block_log_event*) ev))
|
||||||
break; // Error
|
break; // Error
|
||||||
break;
|
break;
|
||||||
case EXEC_LOAD_EVENT:
|
case EXEC_LOAD_EVENT:
|
||||||
{
|
{
|
||||||
ev->print(result_file, short_form, pos, last_event_info);
|
ev->print(result_file, last_event_info);
|
||||||
Execute_load_log_event *exv= (Execute_load_log_event*)ev;
|
Execute_load_log_event *exv= (Execute_load_log_event*)ev;
|
||||||
Create_file_log_event *ce= load_processor.grab_event(exv->file_id);
|
Create_file_log_event *ce= load_processor.grab_event(exv->file_id);
|
||||||
/*
|
/*
|
||||||
@@ -579,7 +582,7 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev,
|
|||||||
*/
|
*/
|
||||||
if (ce)
|
if (ce)
|
||||||
{
|
{
|
||||||
ce->print(result_file, short_form, pos, last_event_info, TRUE);
|
ce->print(result_file, last_event_info, TRUE);
|
||||||
my_free((char*)ce->fname,MYF(MY_WME));
|
my_free((char*)ce->fname,MYF(MY_WME));
|
||||||
delete ce;
|
delete ce;
|
||||||
}
|
}
|
||||||
@@ -591,7 +594,8 @@ Create_file event for file_id: %u\n",exv->file_id);
|
|||||||
case FORMAT_DESCRIPTION_EVENT:
|
case FORMAT_DESCRIPTION_EVENT:
|
||||||
delete description_event;
|
delete description_event;
|
||||||
description_event= (Format_description_log_event*) ev;
|
description_event= (Format_description_log_event*) ev;
|
||||||
ev->print(result_file, short_form, pos, last_event_info);
|
last_event_info->common_header_len= description_event->common_header_len;
|
||||||
|
ev->print(result_file, last_event_info);
|
||||||
/*
|
/*
|
||||||
We don't want this event to be deleted now, so let's hide it (I
|
We don't want this event to be deleted now, so let's hide it (I
|
||||||
(Guilhem) should later see if this triggers a non-serious Valgrind
|
(Guilhem) should later see if this triggers a non-serious Valgrind
|
||||||
@@ -601,7 +605,7 @@ Create_file event for file_id: %u\n",exv->file_id);
|
|||||||
ev= 0;
|
ev= 0;
|
||||||
break;
|
break;
|
||||||
case BEGIN_LOAD_QUERY_EVENT:
|
case BEGIN_LOAD_QUERY_EVENT:
|
||||||
ev->print(result_file, short_form, pos, last_event_info);
|
ev->print(result_file, last_event_info);
|
||||||
load_processor.process((Begin_load_query_log_event*) ev);
|
load_processor.process((Begin_load_query_log_event*) ev);
|
||||||
break;
|
break;
|
||||||
case EXECUTE_LOAD_QUERY_EVENT:
|
case EXECUTE_LOAD_QUERY_EVENT:
|
||||||
@@ -618,7 +622,7 @@ Create_file event for file_id: %u\n",exv->file_id);
|
|||||||
|
|
||||||
if (fname)
|
if (fname)
|
||||||
{
|
{
|
||||||
exlq->print(result_file, short_form, pos, last_event_info, fname);
|
exlq->print(result_file, last_event_info, fname);
|
||||||
my_free(fname, MYF(MY_WME));
|
my_free(fname, MYF(MY_WME));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -627,7 +631,7 @@ Begin_load_query event for file_id: %u\n", exlq->file_id);
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
ev->print(result_file, short_form, pos, last_event_info);
|
ev->print(result_file, last_event_info);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
149
sql/log_event.cc
149
sql/log_event.cc
@@ -701,7 +701,6 @@ failed my_b_read"));
|
|||||||
*/
|
*/
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint data_len = uint4korr(head + EVENT_LEN_OFFSET);
|
uint data_len = uint4korr(head + EVENT_LEN_OFFSET);
|
||||||
char *buf= 0;
|
char *buf= 0;
|
||||||
const char *error= 0;
|
const char *error= 0;
|
||||||
@@ -881,16 +880,18 @@ Log_event* Log_event::read_log_event(const char* buf, uint event_len,
|
|||||||
Log_event::print_header()
|
Log_event::print_header()
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void Log_event::print_header(FILE* file, my_off_t hexdump_from)
|
void Log_event::print_header(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
{
|
{
|
||||||
char llbuff[22];
|
char llbuff[22];
|
||||||
|
my_off_t hexdump_from= last_event_info->hexdump_from;
|
||||||
|
|
||||||
fputc('#', file);
|
fputc('#', file);
|
||||||
print_timestamp(file);
|
print_timestamp(file);
|
||||||
fprintf(file, " server id %d end_log_pos %s ", server_id,
|
fprintf(file, " server id %d end_log_pos %s ", server_id,
|
||||||
llstr(log_pos,llbuff));
|
llstr(log_pos,llbuff));
|
||||||
|
|
||||||
/* mysqlbinlog --hexdump */
|
/* mysqlbinlog --hexdump */
|
||||||
if (hexdump_from)
|
if (last_event_info->hexdump_from)
|
||||||
{
|
{
|
||||||
fprintf(file, "\n");
|
fprintf(file, "\n");
|
||||||
uchar *ptr= (uchar*)temp_buf;
|
uchar *ptr= (uchar*)temp_buf;
|
||||||
@@ -902,7 +903,9 @@ void Log_event::print_header(FILE* file, my_off_t hexdump_from)
|
|||||||
char *h, hex_string[LOG_EVENT_MINIMAL_HEADER_LEN*4]= {0};
|
char *h, hex_string[LOG_EVENT_MINIMAL_HEADER_LEN*4]= {0};
|
||||||
char *c, char_string[16+1]= {0};
|
char *c, char_string[16+1]= {0};
|
||||||
|
|
||||||
/* Common header of event */
|
/* Pretty-print event common header if header is exactly 19 bytes */
|
||||||
|
if (last_event_info->common_header_len == 19)
|
||||||
|
{
|
||||||
fprintf(file, "# Position Timestamp Type Master ID "
|
fprintf(file, "# Position Timestamp Type Master ID "
|
||||||
"Size Master Pos Flags \n");
|
"Size Master Pos Flags \n");
|
||||||
fprintf(file, "# %8.8lx %02x %02x %02x %02x %02x "
|
fprintf(file, "# %8.8lx %02x %02x %02x %02x %02x "
|
||||||
@@ -913,6 +916,7 @@ void Log_event::print_header(FILE* file, my_off_t hexdump_from)
|
|||||||
ptr[12], ptr[13], ptr[14], ptr[15], ptr[16], ptr[17], ptr[18]);
|
ptr[12], ptr[13], ptr[14], ptr[15], ptr[16], ptr[17], ptr[18]);
|
||||||
ptr += LOG_EVENT_MINIMAL_HEADER_LEN;
|
ptr += LOG_EVENT_MINIMAL_HEADER_LEN;
|
||||||
hexdump_from += LOG_EVENT_MINIMAL_HEADER_LEN;
|
hexdump_from += LOG_EVENT_MINIMAL_HEADER_LEN;
|
||||||
|
}
|
||||||
|
|
||||||
/* Rest of event (without common header) */
|
/* Rest of event (without common header) */
|
||||||
for (i= 0, c= char_string, h=hex_string;
|
for (i= 0, c= char_string, h=hex_string;
|
||||||
@@ -1428,8 +1432,7 @@ Query_log_event::Query_log_event(const char* buf, uint event_len,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Query_log_event::print_query_header(FILE* file, bool short_form,
|
void Query_log_event::print_query_header(FILE* file,
|
||||||
my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info)
|
LAST_EVENT_INFO* last_event_info)
|
||||||
{
|
{
|
||||||
// TODO: print the catalog ??
|
// TODO: print the catalog ??
|
||||||
@@ -1437,9 +1440,9 @@ void Query_log_event::print_query_header(FILE* file, bool short_form,
|
|||||||
bool different_db= 1;
|
bool different_db= 1;
|
||||||
uint32 tmp;
|
uint32 tmp;
|
||||||
|
|
||||||
if (!short_form)
|
if (!last_event_info->short_form)
|
||||||
{
|
{
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fprintf(file, "\t%s\tthread_id=%lu\texec_time=%lu\terror_code=%d\n",
|
fprintf(file, "\t%s\tthread_id=%lu\texec_time=%lu\terror_code=%d\n",
|
||||||
get_type_str(), (ulong) thread_id, (ulong) exec_time, error_code);
|
get_type_str(), (ulong) thread_id, (ulong) exec_time, error_code);
|
||||||
}
|
}
|
||||||
@@ -1560,10 +1563,9 @@ void Query_log_event::print_query_header(FILE* file, bool short_form,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Query_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Query_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
print_query_header(file, short_form, hexdump_from, last_event_info);
|
print_query_header(file, last_event_info);
|
||||||
my_fwrite(file, (byte*) query, q_len, MYF(MY_NABP | MY_WME));
|
my_fwrite(file, (byte*) query, q_len, MYF(MY_NABP | MY_WME));
|
||||||
fputs(";\n", file);
|
fputs(";\n", file);
|
||||||
}
|
}
|
||||||
@@ -1861,12 +1863,11 @@ void Start_log_event_v3::pack_info(Protocol *protocol)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Start_log_event_v3::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Start_log_event_v3::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
if (!short_form)
|
if (!last_event_info->short_form)
|
||||||
{
|
{
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fprintf(file, "\tStart: binlog v %d, server v %s created ", binlog_version,
|
fprintf(file, "\tStart: binlog v %d, server v %s created ", binlog_version,
|
||||||
server_version);
|
server_version);
|
||||||
print_timestamp(file);
|
print_timestamp(file);
|
||||||
@@ -2590,20 +2591,19 @@ int Load_log_event::copy_log_event(const char *buf, ulong event_len,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Load_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Load_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
print(file, short_form, hexdump_from, last_event_info, 0);
|
print(file, last_event_info, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Load_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Load_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info,
|
||||||
LAST_EVENT_INFO* last_event_info, bool commented)
|
bool commented)
|
||||||
{
|
{
|
||||||
DBUG_ENTER("Load_log_event::print");
|
DBUG_ENTER("Load_log_event::print");
|
||||||
if (!short_form)
|
if (!last_event_info->short_form)
|
||||||
{
|
{
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fprintf(file, "\tQuery\tthread_id=%ld\texec_time=%ld\n",
|
fprintf(file, "\tQuery\tthread_id=%ld\texec_time=%ld\n",
|
||||||
thread_id, exec_time);
|
thread_id, exec_time);
|
||||||
}
|
}
|
||||||
@@ -3008,14 +3008,13 @@ void Rotate_log_event::pack_info(Protocol *protocol)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Rotate_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Rotate_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
char buf[22];
|
char buf[22];
|
||||||
|
|
||||||
if (short_form)
|
if (last_event_info->short_form)
|
||||||
return;
|
return;
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fprintf(file, "\tRotate to ");
|
fprintf(file, "\tRotate to ");
|
||||||
if (new_log_ident)
|
if (new_log_ident)
|
||||||
my_fwrite(file, (byte*) new_log_ident, (uint)ident_len,
|
my_fwrite(file, (byte*) new_log_ident, (uint)ident_len,
|
||||||
@@ -3211,16 +3210,15 @@ bool Intvar_log_event::write(IO_CACHE* file)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Intvar_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Intvar_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
char llbuff[22];
|
char llbuff[22];
|
||||||
const char *msg;
|
const char *msg;
|
||||||
LINT_INIT(msg);
|
LINT_INIT(msg);
|
||||||
|
|
||||||
if (!short_form)
|
if (!last_event_info->short_form)
|
||||||
{
|
{
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fprintf(file, "\tIntvar\n");
|
fprintf(file, "\tIntvar\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3301,13 +3299,12 @@ bool Rand_log_event::write(IO_CACHE* file)
|
|||||||
|
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Rand_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Rand_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
char llbuff[22],llbuff2[22];
|
char llbuff[22],llbuff2[22];
|
||||||
if (!short_form)
|
if (!last_event_info->short_form)
|
||||||
{
|
{
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fprintf(file, "\tRand\n");
|
fprintf(file, "\tRand\n");
|
||||||
}
|
}
|
||||||
fprintf(file, "SET @@RAND_SEED1=%s, @@RAND_SEED2=%s;\n",
|
fprintf(file, "SET @@RAND_SEED1=%s, @@RAND_SEED2=%s;\n",
|
||||||
@@ -3372,15 +3369,14 @@ bool Xid_log_event::write(IO_CACHE* file)
|
|||||||
|
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Xid_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Xid_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
if (!short_form)
|
if (!last_event_info->short_form)
|
||||||
{
|
{
|
||||||
char buf[64];
|
char buf[64];
|
||||||
longlong10_to_str(xid, buf, 10);
|
longlong10_to_str(xid, buf, 10);
|
||||||
|
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fprintf(file, "\tXid = %s\n", buf);
|
fprintf(file, "\tXid = %s\n", buf);
|
||||||
fflush(file);
|
fflush(file);
|
||||||
}
|
}
|
||||||
@@ -3571,12 +3567,11 @@ bool User_var_log_event::write(IO_CACHE* file)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void User_var_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void User_var_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
if (!short_form)
|
if (!last_event_info->short_form)
|
||||||
{
|
{
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fprintf(file, "\tUser_var\n");
|
fprintf(file, "\tUser_var\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3747,12 +3742,11 @@ int User_var_log_event::exec_event(struct st_relay_log_info* rli)
|
|||||||
|
|
||||||
#ifdef HAVE_REPLICATION
|
#ifdef HAVE_REPLICATION
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Unknown_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Unknown_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
if (short_form)
|
if (last_event_info->short_form)
|
||||||
return;
|
return;
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fputc('\n', file);
|
fputc('\n', file);
|
||||||
fprintf(file, "# %s", "Unknown event\n");
|
fprintf(file, "# %s", "Unknown event\n");
|
||||||
}
|
}
|
||||||
@@ -3819,13 +3813,12 @@ Slave_log_event::~Slave_log_event()
|
|||||||
|
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Slave_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Slave_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
char llbuff[22];
|
char llbuff[22];
|
||||||
if (short_form)
|
if (last_event_info->short_form)
|
||||||
return;
|
return;
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fputc('\n', file);
|
fputc('\n', file);
|
||||||
fprintf(file, "\
|
fprintf(file, "\
|
||||||
Slave: master_host: '%s' master_port: %d master_log: '%s' master_pos: %s\n",
|
Slave: master_host: '%s' master_port: %d master_log: '%s' master_pos: %s\n",
|
||||||
@@ -3905,13 +3898,12 @@ int Slave_log_event::exec_event(struct st_relay_log_info* rli)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Stop_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Stop_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
if (short_form)
|
if (last_event_info->short_form)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fprintf(file, "\tStop\n");
|
fprintf(file, "\tStop\n");
|
||||||
fflush(file);
|
fflush(file);
|
||||||
}
|
}
|
||||||
@@ -4085,19 +4077,19 @@ Create_file_log_event::Create_file_log_event(const char* buf, uint len,
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Create_file_log_event::print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void Create_file_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info,
|
||||||
LAST_EVENT_INFO* last_event_info, bool enable_local)
|
bool enable_local)
|
||||||
{
|
{
|
||||||
if (short_form)
|
if (last_event_info->short_form)
|
||||||
{
|
{
|
||||||
if (enable_local && check_fname_outside_temp_buf())
|
if (enable_local && check_fname_outside_temp_buf())
|
||||||
Load_log_event::print(file, 1, hexdump_from, last_event_info);
|
Load_log_event::print(file, last_event_info);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (enable_local)
|
if (enable_local)
|
||||||
{
|
{
|
||||||
Load_log_event::print(file, short_form, hexdump_from, last_event_info,
|
Load_log_event::print(file, last_event_info,
|
||||||
!check_fname_outside_temp_buf());
|
!check_fname_outside_temp_buf());
|
||||||
/*
|
/*
|
||||||
That one is for "file_id: etc" below: in mysqlbinlog we want the #, in
|
That one is for "file_id: etc" below: in mysqlbinlog we want the #, in
|
||||||
@@ -4110,11 +4102,9 @@ void Create_file_log_event::print(FILE* file, bool short_form, my_off_t hexdump_
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Create_file_log_event::print(FILE* file, bool short_form,
|
void Create_file_log_event::print(FILE* file, LAST_EVENT_INFO* last_event_info)
|
||||||
my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info)
|
|
||||||
{
|
{
|
||||||
print(file, short_form, hexdump_from, last_event_info, 0);
|
print(file, last_event_info, 0);
|
||||||
}
|
}
|
||||||
#endif /* MYSQL_CLIENT */
|
#endif /* MYSQL_CLIENT */
|
||||||
|
|
||||||
@@ -4274,13 +4264,12 @@ bool Append_block_log_event::write(IO_CACHE* file)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Append_block_log_event::print(FILE* file, bool short_form,
|
void Append_block_log_event::print(FILE* file,
|
||||||
my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info)
|
LAST_EVENT_INFO* last_event_info)
|
||||||
{
|
{
|
||||||
if (short_form)
|
if (last_event_info->short_form)
|
||||||
return;
|
return;
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fputc('\n', file);
|
fputc('\n', file);
|
||||||
fprintf(file, "#%s: file_id: %d block_len: %d\n",
|
fprintf(file, "#%s: file_id: %d block_len: %d\n",
|
||||||
get_type_str(), file_id, block_len);
|
get_type_str(), file_id, block_len);
|
||||||
@@ -4419,13 +4408,12 @@ bool Delete_file_log_event::write(IO_CACHE* file)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Delete_file_log_event::print(FILE* file, bool short_form,
|
void Delete_file_log_event::print(FILE* file,
|
||||||
my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info)
|
LAST_EVENT_INFO* last_event_info)
|
||||||
{
|
{
|
||||||
if (short_form)
|
if (last_event_info->short_form)
|
||||||
return;
|
return;
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fputc('\n', file);
|
fputc('\n', file);
|
||||||
fprintf(file, "#Delete_file: file_id=%u\n", file_id);
|
fprintf(file, "#Delete_file: file_id=%u\n", file_id);
|
||||||
}
|
}
|
||||||
@@ -4516,13 +4504,12 @@ bool Execute_load_log_event::write(IO_CACHE* file)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Execute_load_log_event::print(FILE* file, bool short_form,
|
void Execute_load_log_event::print(FILE* file,
|
||||||
my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info)
|
LAST_EVENT_INFO* last_event_info)
|
||||||
{
|
{
|
||||||
if (short_form)
|
if (last_event_info->short_form)
|
||||||
return;
|
return;
|
||||||
print_header(file, hexdump_from);
|
print_header(file, last_event_info);
|
||||||
fputc('\n', file);
|
fputc('\n', file);
|
||||||
fprintf(file, "#Exec_load: file_id=%d\n",
|
fprintf(file, "#Exec_load: file_id=%d\n",
|
||||||
file_id);
|
file_id);
|
||||||
@@ -4729,20 +4716,18 @@ Execute_load_query_log_event::write_post_header_for_derived(IO_CACHE* file)
|
|||||||
|
|
||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
void Execute_load_query_log_event::print(FILE* file, bool short_form,
|
void Execute_load_query_log_event::print(FILE* file,
|
||||||
my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info)
|
LAST_EVENT_INFO* last_event_info)
|
||||||
{
|
{
|
||||||
print(file, short_form, hexdump_from, last_event_info, 0);
|
print(file, last_event_info, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void Execute_load_query_log_event::print(FILE* file, bool short_form,
|
void Execute_load_query_log_event::print(FILE* file,
|
||||||
my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info,
|
LAST_EVENT_INFO* last_event_info,
|
||||||
const char *local_fname)
|
const char *local_fname)
|
||||||
{
|
{
|
||||||
print_query_header(file, short_form, hexdump_from, last_event_info);
|
print_query_header(file, last_event_info);
|
||||||
|
|
||||||
if (local_fname)
|
if (local_fname)
|
||||||
{
|
{
|
||||||
@@ -4763,7 +4748,7 @@ void Execute_load_query_log_event::print(FILE* file, bool short_form,
|
|||||||
fprintf(file, ";\n");
|
fprintf(file, ";\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!short_form)
|
if (!last_event_info->short_form)
|
||||||
fprintf(file, "# file_id: %d \n", file_id);
|
fprintf(file, "# file_id: %d \n", file_id);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@@ -451,12 +451,18 @@ struct st_relay_log_info;
|
|||||||
|
|
||||||
#ifdef MYSQL_CLIENT
|
#ifdef MYSQL_CLIENT
|
||||||
/*
|
/*
|
||||||
A structure for mysqlbinlog to remember the last db, flags2, sql_mode etc; it
|
A structure for mysqlbinlog to know how to print events
|
||||||
is passed to events' print() methods, so that they print only the necessary
|
|
||||||
USE and SET commands.
|
This structure is passed to the event's print() methods so that only
|
||||||
|
the necessary USE and SET commands are printed. Last db, flags2,
|
||||||
|
sql_mode etc are stored here.
|
||||||
|
|
||||||
|
The structure also contain other information on how to print the
|
||||||
|
events, e.g. short_form, hexdump_from.
|
||||||
*/
|
*/
|
||||||
typedef struct st_last_event_info
|
typedef struct st_last_event_info
|
||||||
{
|
{
|
||||||
|
/* Old settings for database, sql_mode etc */
|
||||||
// TODO: have the last catalog here ??
|
// TODO: have the last catalog here ??
|
||||||
char db[FN_REFLEN+1]; // TODO: make this a LEX_STRING when thd->db is
|
char db[FN_REFLEN+1]; // TODO: make this a LEX_STRING when thd->db is
|
||||||
bool flags2_inited;
|
bool flags2_inited;
|
||||||
@@ -480,6 +486,12 @@ typedef struct st_last_event_info
|
|||||||
bzero(charset, sizeof(charset));
|
bzero(charset, sizeof(charset));
|
||||||
bzero(time_zone_str, sizeof(time_zone_str));
|
bzero(time_zone_str, sizeof(time_zone_str));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Settings on how to print the events */
|
||||||
|
bool short_form;
|
||||||
|
my_off_t hexdump_from;
|
||||||
|
uint8 common_header_len;
|
||||||
|
|
||||||
} LAST_EVENT_INFO;
|
} LAST_EVENT_INFO;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -589,10 +601,9 @@ public:
|
|||||||
static Log_event* read_log_event(IO_CACHE* file,
|
static Log_event* read_log_event(IO_CACHE* file,
|
||||||
const Format_description_log_event *description_event);
|
const Format_description_log_event *description_event);
|
||||||
/* print*() functions are used by mysqlbinlog */
|
/* print*() functions are used by mysqlbinlog */
|
||||||
virtual void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
virtual void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0) = 0;
|
||||||
LAST_EVENT_INFO* last_event_info= 0) = 0;
|
|
||||||
void print_timestamp(FILE* file, time_t *ts = 0);
|
void print_timestamp(FILE* file, time_t *ts = 0);
|
||||||
void print_header(FILE* file, my_off_t hexdump_from= 0);
|
void print_header(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void *operator new(size_t size)
|
static void *operator new(size_t size)
|
||||||
@@ -752,11 +763,8 @@ public:
|
|||||||
uint32 q_len_arg);
|
uint32 q_len_arg);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print_query_header(FILE* file, bool short_form= 0,
|
void print_query_header(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Query_log_event(const char* buf, uint event_len,
|
Query_log_event(const char* buf, uint event_len,
|
||||||
@@ -810,8 +818,7 @@ public:
|
|||||||
void pack_info(Protocol* protocol);
|
void pack_info(Protocol* protocol);
|
||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Slave_log_event(const char* buf, uint event_len);
|
Slave_log_event(const char* buf, uint event_len);
|
||||||
@@ -899,10 +906,8 @@ public:
|
|||||||
bool use_rli_only_for_errors);
|
bool use_rli_only_for_errors);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info = 0);
|
||||||
LAST_EVENT_INFO* last_event_info = 0);
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info, bool commented);
|
||||||
void print(FILE* file, bool short_form, my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info, bool commented);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -991,8 +996,7 @@ public:
|
|||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
Start_log_event_v3() {}
|
Start_log_event_v3() {}
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Start_log_event_v3(const char* buf,
|
Start_log_event_v3(const char* buf,
|
||||||
@@ -1087,8 +1091,7 @@ public:
|
|||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Intvar_log_event(const char* buf, const Format_description_log_event* description_event);
|
Intvar_log_event(const char* buf, const Format_description_log_event* description_event);
|
||||||
@@ -1129,8 +1132,7 @@ class Rand_log_event: public Log_event
|
|||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Rand_log_event(const char* buf, const Format_description_log_event* description_event);
|
Rand_log_event(const char* buf, const Format_description_log_event* description_event);
|
||||||
@@ -1167,8 +1169,7 @@ class Xid_log_event: public Log_event
|
|||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Xid_log_event(const char* buf, const Format_description_log_event* description_event);
|
Xid_log_event(const char* buf, const Format_description_log_event* description_event);
|
||||||
@@ -1210,8 +1211,7 @@ public:
|
|||||||
void pack_info(Protocol* protocol);
|
void pack_info(Protocol* protocol);
|
||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
User_var_log_event(const char* buf, const Format_description_log_event* description_event);
|
User_var_log_event(const char* buf, const Format_description_log_event* description_event);
|
||||||
@@ -1237,8 +1237,7 @@ public:
|
|||||||
{}
|
{}
|
||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Stop_log_event(const char* buf, const Format_description_log_event* description_event):
|
Stop_log_event(const char* buf, const Format_description_log_event* description_event):
|
||||||
@@ -1277,8 +1276,7 @@ public:
|
|||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Rotate_log_event(const char* buf, uint event_len,
|
Rotate_log_event(const char* buf, uint event_len,
|
||||||
@@ -1331,10 +1329,8 @@ public:
|
|||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info, bool enable_local);
|
||||||
void print(FILE* file, bool short_form, my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info, bool enable_local);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Create_file_log_event(const char* buf, uint event_len,
|
Create_file_log_event(const char* buf, uint event_len,
|
||||||
@@ -1401,8 +1397,7 @@ public:
|
|||||||
virtual int get_create_or_append() const;
|
virtual int get_create_or_append() const;
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Append_block_log_event(const char* buf, uint event_len,
|
Append_block_log_event(const char* buf, uint event_len,
|
||||||
@@ -1437,10 +1432,8 @@ public:
|
|||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info, bool enable_local);
|
||||||
void print(FILE* file, bool short_form, my_off_t hexdump_from,
|
|
||||||
LAST_EVENT_INFO* last_event_info, bool enable_local);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Delete_file_log_event(const char* buf, uint event_len,
|
Delete_file_log_event(const char* buf, uint event_len,
|
||||||
@@ -1475,8 +1468,7 @@ public:
|
|||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
Execute_load_log_event(const char* buf, uint event_len,
|
Execute_load_log_event(const char* buf, uint event_len,
|
||||||
@@ -1561,11 +1553,10 @@ public:
|
|||||||
int exec_event(struct st_relay_log_info* rli);
|
int exec_event(struct st_relay_log_info* rli);
|
||||||
#endif /* HAVE_REPLICATION */
|
#endif /* HAVE_REPLICATION */
|
||||||
#else
|
#else
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
/* Prints the query as LOAD DATA LOCAL and with rewritten filename */
|
/* Prints the query as LOAD DATA LOCAL and with rewritten filename */
|
||||||
void print(FILE* file, bool short_form, my_off_t hexdump_from,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info,
|
||||||
LAST_EVENT_INFO* last_event_info, const char *local_fname);
|
const char *local_fname);
|
||||||
#endif
|
#endif
|
||||||
Execute_load_query_log_event(const char* buf, uint event_len,
|
Execute_load_query_log_event(const char* buf, uint event_len,
|
||||||
const Format_description_log_event *description_event);
|
const Format_description_log_event *description_event);
|
||||||
@@ -1594,8 +1585,7 @@ public:
|
|||||||
Log_event(buf, description_event)
|
Log_event(buf, description_event)
|
||||||
{}
|
{}
|
||||||
~Unknown_log_event() {}
|
~Unknown_log_event() {}
|
||||||
void print(FILE* file, bool short_form= 0, my_off_t hexdump_from= 0,
|
void print(FILE* file, LAST_EVENT_INFO* last_event_info= 0);
|
||||||
LAST_EVENT_INFO* last_event_info= 0);
|
|
||||||
Log_event_type get_type_code() { return UNKNOWN_EVENT;}
|
Log_event_type get_type_code() { return UNKNOWN_EVENT;}
|
||||||
bool is_valid() const { return 1; }
|
bool is_valid() const { return 1; }
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user