Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
d81d57d4
Commit
d81d57d4
authored
Sep 29, 2005
by
lars@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mysqlbinlog --hexdump augments each log entry with byte information
parent
5e70387f
Changes
3
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
163 additions
and
70 deletions
+163
-70
client/mysqlbinlog.cc
client/mysqlbinlog.cc
+20
-10
sql/log_event.cc
sql/log_event.cc
+98
-36
sql/log_event.h
sql/log_event.h
+45
-24
No files found.
client/mysqlbinlog.cc
View file @
d81d57d4
...
...
@@ -62,6 +62,7 @@ static const char *load_default_groups[]= { "mysqlbinlog","client",0 };
void
sql_print_error
(
const
char
*
format
,
...);
static
bool
one_database
=
0
,
to_last_remote_log
=
0
,
disable_log_bin
=
0
;
static
bool
opt_hexdump
=
0
;
static
const
char
*
database
=
0
;
static
my_bool
force_opt
=
0
,
short_form
=
0
,
remote_opt
=
0
;
static
ulonglong
offset
=
0
;
...
...
@@ -523,11 +524,14 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev,
if
(
!
short_form
)
fprintf
(
result_file
,
"# at %s
\n
"
,
llstr
(
pos
,
ll_buff
));
/* Set pos to 0 if hexdump is disabled */
pos
=
(
opt_hexdump
?
pos
:
0
);
switch
(
ev_type
)
{
case
QUERY_EVENT
:
if
(
check_database
(((
Query_log_event
*
)
ev
)
->
db
))
goto
end
;
ev
->
print
(
result_file
,
short_form
,
last_event_info
);
ev
->
print
(
result_file
,
short_form
,
pos
,
last_event_info
);
break
;
case
CREATE_FILE_EVENT
:
{
...
...
@@ -547,7 +551,8 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev,
filename and use LOCAL), prepared in the 'case EXEC_LOAD_EVENT'
below.
*/
ce
->
print
(
result_file
,
short_form
,
last_event_info
,
TRUE
);
ce
->
print
(
result_file
,
short_form
,
pos
,
last_event_info
,
TRUE
);
// If this binlog is not 3.23 ; why this test??
if
(
description_event
->
binlog_version
>=
3
)
{
...
...
@@ -558,13 +563,13 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev,
break
;
}
case
APPEND_BLOCK_EVENT
:
ev
->
print
(
result_file
,
short_form
,
last_event_info
);
ev
->
print
(
result_file
,
short_form
,
pos
,
last_event_info
);
if
(
load_processor
.
process
((
Append_block_log_event
*
)
ev
))
break
;
// Error
break
;
case
EXEC_LOAD_EVENT
:
{
ev
->
print
(
result_file
,
short_form
,
last_event_info
);
ev
->
print
(
result_file
,
short_form
,
pos
,
last_event_info
);
Execute_load_log_event
*
exv
=
(
Execute_load_log_event
*
)
ev
;
Create_file_log_event
*
ce
=
load_processor
.
grab_event
(
exv
->
file_id
);
/*
...
...
@@ -574,7 +579,7 @@ int process_event(LAST_EVENT_INFO *last_event_info, Log_event *ev,
*/
if
(
ce
)
{
ce
->
print
(
result_file
,
short_form
,
last_event_info
,
TRUE
);
ce
->
print
(
result_file
,
short_form
,
pos
,
last_event_info
,
TRUE
);
my_free
((
char
*
)
ce
->
fname
,
MYF
(
MY_WME
));
delete
ce
;
}
...
...
@@ -586,7 +591,7 @@ Create_file event for file_id: %u\n",exv->file_id);
case
FORMAT_DESCRIPTION_EVENT
:
delete
description_event
;
description_event
=
(
Format_description_log_event
*
)
ev
;
ev
->
print
(
result_file
,
short_form
,
last_event_info
);
ev
->
print
(
result_file
,
short_form
,
pos
,
last_event_info
);
/*
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
...
...
@@ -596,7 +601,7 @@ Create_file event for file_id: %u\n",exv->file_id);
ev
=
0
;
break
;
case
BEGIN_LOAD_QUERY_EVENT
:
ev
->
print
(
result_file
,
short_form
,
last_event_info
);
ev
->
print
(
result_file
,
short_form
,
pos
,
last_event_info
);
load_processor
.
process
((
Begin_load_query_log_event
*
)
ev
);
break
;
case
EXECUTE_LOAD_QUERY_EVENT
:
...
...
@@ -613,7 +618,7 @@ Create_file event for file_id: %u\n",exv->file_id);
if
(
fname
)
{
exlq
->
print
(
result_file
,
short_form
,
last_event_info
,
fname
);
exlq
->
print
(
result_file
,
short_form
,
pos
,
last_event_info
,
fname
);
my_free
(
fname
,
MYF
(
MY_WME
));
}
else
...
...
@@ -622,7 +627,7 @@ Begin_load_query event for file_id: %u\n", exlq->file_id);
break
;
}
default:
ev
->
print
(
result_file
,
short_form
,
last_event_info
);
ev
->
print
(
result_file
,
short_form
,
pos
,
last_event_info
);
}
}
...
...
@@ -669,6 +674,8 @@ static struct my_option my_long_options[] =
0
,
0
},
{
"help"
,
'?'
,
"Display this help and exit."
,
0
,
0
,
0
,
GET_NO_ARG
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"hexdump"
,
'H'
,
"Augment output with hexadecimal and ascii data dump."
,
0
,
0
,
0
,
GET_NO_ARG
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"host"
,
'h'
,
"Get the binlog from server."
,
(
gptr
*
)
&
host
,
(
gptr
*
)
&
host
,
0
,
GET_STR_ALLOC
,
REQUIRED_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"offset"
,
'o'
,
"Skip the first N entries."
,
(
gptr
*
)
&
offset
,
(
gptr
*
)
&
offset
,
...
...
@@ -848,6 +855,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case
'd'
:
one_database
=
1
;
break
;
case
'H'
:
opt_hexdump
=
1
;
break
;
case
'p'
:
if
(
argument
)
{
...
...
sql/log_event.cc
View file @
d81d57d4
This diff is collapsed.
Click to expand it.
sql/log_event.h
View file @
d81d57d4
...
...
@@ -589,9 +589,10 @@ class Log_event
static
Log_event
*
read_log_event
(
IO_CACHE
*
file
,
const
Format_description_log_event
*
description_event
);
/* print*() functions are used by mysqlbinlog */
virtual
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
)
=
0
;
virtual
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
)
=
0
;
void
print_timestamp
(
FILE
*
file
,
time_t
*
ts
=
0
);
void
print_header
(
FILE
*
file
);
void
print_header
(
FILE
*
file
,
my_off_t
start_pos
=
0
);
#endif
static
void
*
operator
new
(
size_t
size
)
...
...
@@ -751,8 +752,11 @@ class Query_log_event: public Log_event
uint32
q_len_arg
);
#endif
/* HAVE_REPLICATION */
#else
void
print_query_header
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print_query_header
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Query_log_event
(
const
char
*
buf
,
uint
event_len
,
...
...
@@ -806,7 +810,8 @@ class Slave_log_event: public Log_event
void
pack_info
(
Protocol
*
protocol
);
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Slave_log_event
(
const
char
*
buf
,
uint
event_len
);
...
...
@@ -894,8 +899,10 @@ class Load_log_event: public Log_event
bool
use_rli_only_for_errors
);
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
,
LAST_EVENT_INFO
*
last_event_info
,
bool
commented
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
,
my_off_t
start_pos
,
LAST_EVENT_INFO
*
last_event_info
,
bool
commented
);
#endif
/*
...
...
@@ -984,7 +991,8 @@ class Start_log_event_v3: public Log_event
#endif
/* HAVE_REPLICATION */
#else
Start_log_event_v3
()
{}
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Start_log_event_v3
(
const
char
*
buf
,
...
...
@@ -1079,7 +1087,8 @@ class Intvar_log_event: public Log_event
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Intvar_log_event
(
const
char
*
buf
,
const
Format_description_log_event
*
description_event
);
...
...
@@ -1120,7 +1129,8 @@ class Rand_log_event: public Log_event
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Rand_log_event
(
const
char
*
buf
,
const
Format_description_log_event
*
description_event
);
...
...
@@ -1157,7 +1167,8 @@ class Xid_log_event: public Log_event
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Xid_log_event
(
const
char
*
buf
,
const
Format_description_log_event
*
description_event
);
...
...
@@ -1199,7 +1210,8 @@ class User_var_log_event: public Log_event
void
pack_info
(
Protocol
*
protocol
);
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
User_var_log_event
(
const
char
*
buf
,
const
Format_description_log_event
*
description_event
);
...
...
@@ -1225,7 +1237,8 @@ class Stop_log_event: public Log_event
{}
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Stop_log_event
(
const
char
*
buf
,
const
Format_description_log_event
*
description_event
)
:
...
...
@@ -1264,7 +1277,8 @@ class Rotate_log_event: public Log_event
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Rotate_log_event
(
const
char
*
buf
,
uint
event_len
,
...
...
@@ -1317,8 +1331,10 @@ class Create_file_log_event: public Load_log_event
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
,
LAST_EVENT_INFO
*
last_event_info
,
bool
enable_local
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
,
my_off_t
start_pos
,
LAST_EVENT_INFO
*
last_event_info
,
bool
enable_local
);
#endif
Create_file_log_event
(
const
char
*
buf
,
uint
event_len
,
...
...
@@ -1385,7 +1401,8 @@ class Append_block_log_event: public Log_event
virtual
int
get_create_or_append
()
const
;
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Append_block_log_event
(
const
char
*
buf
,
uint
event_len
,
...
...
@@ -1420,8 +1437,10 @@ class Delete_file_log_event: public Log_event
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
,
LAST_EVENT_INFO
*
last_event_info
,
bool
enable_local
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
,
my_off_t
start_pos
,
LAST_EVENT_INFO
*
last_event_info
,
bool
enable_local
);
#endif
Delete_file_log_event
(
const
char
*
buf
,
uint
event_len
,
...
...
@@ -1456,7 +1475,8 @@ class Execute_load_log_event: public Log_event
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
#endif
Execute_load_log_event
(
const
char
*
buf
,
uint
event_len
,
...
...
@@ -1541,11 +1561,11 @@ class Execute_load_query_log_event: public Query_log_event
int
exec_event
(
struct
st_relay_log_info
*
rli
);
#endif
/* HAVE_REPLICATION */
#else
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
/* Prints the query as LOAD DATA LOCAL and with rewritten filename */
void
print
(
FILE
*
file
,
bool
short_form
,
LAST_EVENT_INFO
*
last_event_info
,
const
char
*
local_fname
);
void
print
(
FILE
*
file
,
bool
short_form
,
my_off_t
start_pos
,
LAST_EVENT_INFO
*
last_event_info
,
const
char
*
local_fname
);
#endif
Execute_load_query_log_event
(
const
char
*
buf
,
uint
event_len
,
const
Format_description_log_event
*
description_event
);
...
...
@@ -1574,7 +1594,8 @@ class Unknown_log_event: public Log_event
Log_event
(
buf
,
description_event
)
{}
~
Unknown_log_event
()
{}
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
void
print
(
FILE
*
file
,
bool
short_form
=
0
,
my_off_t
start_pos
=
0
,
LAST_EVENT_INFO
*
last_event_info
=
0
);
Log_event_type
get_type_code
()
{
return
UNKNOWN_EVENT
;}
bool
is_valid
()
const
{
return
1
;
}
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment