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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
a8a2d16c
Commit
a8a2d16c
authored
Mar 18, 2006
by
mats@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/home/bkroot/mysql-5.1-new
into mysql.com:/home/bk/b17400-mysql-5.1-new
parents
928591e5
da22f2dd
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
63 additions
and
32 deletions
+63
-32
mysql-test/r/binlog_row_drop_tmp_tbl.result
mysql-test/r/binlog_row_drop_tmp_tbl.result
+0
-2
mysql-test/r/rpl_row_log.result
mysql-test/r/rpl_row_log.result
+3
-7
mysql-test/r/rpl_row_log_innodb.result
mysql-test/r/rpl_row_log_innodb.result
+3
-7
mysql-test/r/rpl_row_max_relay_size.result
mysql-test/r/rpl_row_max_relay_size.result
+1
-1
sql/handler.cc
sql/handler.cc
+35
-4
sql/sql_class.cc
sql/sql_class.cc
+1
-1
sql/sql_parse.cc
sql/sql_parse.cc
+8
-10
sql/table.cc
sql/table.cc
+3
-0
sql/table.h
sql/table.h
+9
-0
No files found.
mysql-test/r/binlog_row_drop_tmp_tbl.result
View file @
a8a2d16c
...
...
@@ -14,7 +14,5 @@ get_lock("a",10)
show binlog events;
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
master-bin.000001 # Table_map 1 # table_id: # (mysql.proc)
master-bin.000001 # Write_rows 1 # table_id: # flags: STMT_END_F
master-bin.000001 # Query 1 # create database `drop-temp+table-test`
drop database `drop-temp+table-test`;
mysql-test/r/rpl_row_log.result
View file @
a8a2d16c
...
...
@@ -57,8 +57,6 @@ master-bin.000001 # Rotate 1 # master-bin.000002;pos=4
show binlog events in 'master-bin.000002';
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000002 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
master-bin.000002 # Table_map 1 # table_id: # (mysql.slow_log)
master-bin.000002 # Table_map 1 # table_id: # (mysql.general_log)
master-bin.000002 # Query 1 # use `test`; create table t3 (a int)ENGINE=MyISAM
master-bin.000002 # Query 1 # use `test`; create table t2 (n int)ENGINE=MyISAM
master-bin.000002 # Table_map 1 # table_id: # (test.t2)
...
...
@@ -66,12 +64,12 @@ master-bin.000002 # Write_rows 1 # table_id: # flags: STMT_END_F
show binary logs;
Log_name File_size
master-bin.000001 1256
master-bin.000002
48
3
master-bin.000002
37
3
start slave;
show binary logs;
Log_name File_size
slave-bin.000001 1354
slave-bin.000002
38
4
slave-bin.000002
27
4
show binlog events in 'slave-bin.000001' from 4;
Log_name Pos Event_type Server_id End_log_pos Info
slave-bin.000001 # Format_desc 2 # Server ver: VERSION, Binlog ver: 4
...
...
@@ -87,14 +85,12 @@ slave-bin.000001 # Rotate 2 # slave-bin.000002;pos=4
show binlog events in 'slave-bin.000002' from 4;
Log_name Pos Event_type Server_id End_log_pos Info
slave-bin.000002 # Format_desc 2 # Server ver: VERSION, Binlog ver: 4
slave-bin.000002 # Table_map 2 # table_id: # (mysql.slow_log)
slave-bin.000002 # Table_map 2 # table_id: # (mysql.general_log)
slave-bin.000002 # Query 1 # use `test`; create table t2 (n int)ENGINE=MyISAM
slave-bin.000002 # Table_map 1 # table_id: # (test.t2)
slave-bin.000002 # Write_rows 1 # table_id: # flags: STMT_END_F
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
# 127.0.0.1 root MASTER_PORT 1 master-bin.000002
483 # # master-bin.000002 Yes Yes # 0 0 48
3 # None 0 No #
# 127.0.0.1 root MASTER_PORT 1 master-bin.000002
373 # # master-bin.000002 Yes Yes # 0 0 37
3 # None 0 No #
show binlog events in 'slave-bin.000005' from 4;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
DROP TABLE t1;
...
...
mysql-test/r/rpl_row_log_innodb.result
View file @
a8a2d16c
...
...
@@ -61,8 +61,6 @@ master-bin.000001 # Rotate 1 # master-bin.000002;pos=4
show binlog events in 'master-bin.000002';
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000002 # Format_desc 1 # Server ver: VERSION, Binlog ver: 4
master-bin.000002 # Table_map 1 # table_id: # (mysql.slow_log)
master-bin.000002 # Table_map 1 # table_id: # (mysql.general_log)
master-bin.000002 # Query 1 # use `test`; create table t3 (a int)ENGINE=InnoDB
master-bin.000002 # Query 1 # use `test`; create table t2 (n int)ENGINE=InnoDB
master-bin.000002 # Table_map 1 # table_id: # (test.t2)
...
...
@@ -71,12 +69,12 @@ master-bin.000002 # Xid 1 # COMMIT /* XID */
show binary logs;
Log_name File_size
master-bin.000001 1310
master-bin.000002
51
0
master-bin.000002
40
0
start slave;
show binary logs;
Log_name File_size
slave-bin.000001 1408
slave-bin.000002
41
1
slave-bin.000002
30
1
show binlog events in 'slave-bin.000001' from 4;
Log_name Pos Event_type Server_id End_log_pos Info
slave-bin.000001 # Format_desc 2 # Server ver: VERSION, Binlog ver: 4
...
...
@@ -94,15 +92,13 @@ slave-bin.000001 # Rotate 2 # slave-bin.000002;pos=4
show binlog events in 'slave-bin.000002' from 4;
Log_name Pos Event_type Server_id End_log_pos Info
slave-bin.000002 # Format_desc 2 # Server ver: VERSION, Binlog ver: 4
slave-bin.000002 # Table_map 2 # table_id: # (mysql.slow_log)
slave-bin.000002 # Table_map 2 # table_id: # (mysql.general_log)
slave-bin.000002 # Query 1 # use `test`; create table t2 (n int)ENGINE=InnoDB
slave-bin.000002 # Table_map 1 # table_id: # (test.t2)
slave-bin.000002 # Write_rows 1 # table_id: # flags: STMT_END_F
slave-bin.000002 # Xid 1 # COMMIT /* XID */
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
# 127.0.0.1 root MASTER_PORT 1 master-bin.000002
510 # # master-bin.000002 Yes Yes # 0 0 51
0 # None 0 No #
# 127.0.0.1 root MASTER_PORT 1 master-bin.000002
400 # # master-bin.000002 Yes Yes # 0 0 40
0 # None 0 No #
show binlog events in 'slave-bin.000005' from 4;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
DROP TABLE t1;
...
...
mysql-test/r/rpl_row_max_relay_size.result
View file @
a8a2d16c
...
...
@@ -58,4 +58,4 @@ Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File
flush logs;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000002
21
2 <Binlog_Ignore_DB>
master-bin.000002
10
2 <Binlog_Ignore_DB>
sql/handler.cc
View file @
a8a2d16c
...
...
@@ -3150,16 +3150,47 @@ bool ha_show_status(THD *thd, handlerton *db_type, enum ha_stat_type stat)
declared static, but it works by putting it into an anonymous
namespace. */
namespace
{
struct
st_table_data
{
char
const
*
db
;
char
const
*
name
;
};
int
table_name_compare
(
void
const
*
a
,
void
const
*
b
)
{
st_table_data
const
*
x
=
(
st_table_data
const
*
)
a
;
st_table_data
const
*
y
=
(
st_table_data
const
*
)
b
;
/* Doing lexical compare in order (db,name) */
int
const
res
=
strcmp
(
x
->
db
,
y
->
db
);
return
res
!=
0
?
res
:
strcmp
(
x
->
name
,
y
->
name
);
}
bool
check_table_binlog_row_based
(
THD
*
thd
,
TABLE
*
table
)
{
static
st_table_data
const
ignore
[]
=
{
{
"mysql"
,
"event"
},
{
"mysql"
,
"general_log"
},
{
"mysql"
,
"slow_log"
}
};
my_size_t
const
ignore_size
=
sizeof
(
ignore
)
/
sizeof
(
*
ignore
);
st_table_data
const
item
=
{
table
->
s
->
db
.
str
,
table
->
s
->
table_name
.
str
};
if
(
table
->
s
->
cached_row_logging_check
==
-
1
)
table
->
s
->
cached_row_logging_check
=
(
table
->
s
->
tmp_table
==
NO_TMP_TABLE
)
&&
binlog_filter
->
db_ok
(
table
->
s
->
db
.
str
)
&&
bsearch
(
&
item
,
ignore
,
ignore_size
,
sizeof
(
st_table_data
),
table_name_compare
)
==
NULL
;
DBUG_ASSERT
(
table
->
s
->
cached_row_logging_check
==
0
||
table
->
s
->
cached_row_logging_check
==
1
);
return
thd
->
current_stmt_binlog_row_based
&&
thd
&&
(
thd
->
options
&
OPTION_BIN_LOG
)
&&
(
table
->
s
->
tmp_table
==
NO_TMP_TABLE
)
&&
mysql_bin_log
.
is_open
()
&&
binlog_filter
->
db_ok
(
table
->
s
->
db
.
str
)
&&
(
strcmp
(
table
->
s
->
db
.
str
,
"mysql"
)
||
strcmp
(
table
->
s
->
table_name
.
str
,
"event"
));
table
->
s
->
cached_row_logging_check
;
}
}
...
...
sql/sql_class.cc
View file @
a8a2d16c
...
...
@@ -2602,7 +2602,7 @@ int THD::binlog_query(THD::enum_binlog_query_type qtype,
moving back and forth between using RBR for replication of
system tables and not using it.
Make sure to change in check_table_
current_stmt_binlog_row_based
according
Make sure to change in check_table_
binlog_row_based()
according
to how you treat this.
*/
case
THD
:
:
ROW_QUERY_TYPE
:
...
...
sql/sql_parse.cc
View file @
a8a2d16c
...
...
@@ -3144,8 +3144,8 @@ end_with_restore_list:
if
(
mysql_bin_log
.
is_open
())
{
thd
->
clear_error
();
// No binlog error generated
Query_log_event
qinfo
(
thd
,
thd
->
query
,
thd
->
query_length
,
0
,
FALSE
);
mysql_bin_log
.
write
(
&
qinfo
);
thd
->
binlog_query
(
THD
::
STMT_QUERY_TYPE
,
thd
->
query
,
thd
->
query_length
,
0
,
FALSE
);
}
}
select_lex
->
table_list
.
first
=
(
byte
*
)
first_table
;
...
...
@@ -3178,8 +3178,8 @@ end_with_restore_list:
if
(
mysql_bin_log
.
is_open
())
{
thd
->
clear_error
();
// No binlog error generated
Query_log_event
qinfo
(
thd
,
thd
->
query
,
thd
->
query_length
,
0
,
FALSE
);
mysql_bin_log
.
write
(
&
qinfo
);
thd
->
binlog_query
(
THD
::
STMT_QUERY_TYPE
,
thd
->
query
,
thd
->
query_length
,
0
,
FALSE
);
}
}
select_lex
->
table_list
.
first
=
(
byte
*
)
first_table
;
...
...
@@ -3203,8 +3203,8 @@ end_with_restore_list:
if
(
mysql_bin_log
.
is_open
())
{
thd
->
clear_error
();
// No binlog error generated
Query_log_event
qinfo
(
thd
,
thd
->
query
,
thd
->
query_length
,
0
,
FALSE
);
mysql_bin_log
.
write
(
&
qinfo
);
thd
->
binlog_query
(
THD
::
STMT_QUERY_TYPE
,
thd
->
query
,
thd
->
query_length
,
0
,
FALSE
);
}
}
select_lex
->
table_list
.
first
=
(
byte
*
)
first_table
;
...
...
@@ -3865,10 +3865,8 @@ end_with_restore_list:
if
(
!
(
res
=
mysql_create_user
(
thd
,
lex
->
users_list
)))
{
if
(
mysql_bin_log
.
is_open
())
{
thd
->
binlog_query
(
THD
::
MYSQL_QUERY_TYPE
,
thd
->
query
,
thd
->
query_length
,
FALSE
,
FALSE
);
}
send_ok
(
thd
);
}
break
;
...
...
@@ -4058,8 +4056,8 @@ end_with_restore_list:
{
if
(
mysql_bin_log
.
is_open
())
{
Query_log_event
qinfo
(
thd
,
thd
->
query
,
thd
->
query_length
,
0
,
FALSE
);
mysql_bin_log
.
write
(
&
qinfo
);
thd
->
binlog_query
(
THD
::
STMT_QUERY_TYPE
,
thd
->
query
,
thd
->
query_length
,
0
,
FALSE
);
}
}
send_ok
(
thd
);
...
...
sql/table.cc
View file @
a8a2d16c
...
...
@@ -146,6 +146,8 @@ TABLE_SHARE *alloc_table_share(TABLE_LIST *table_list, char *key,
under the protection of the LOCK_open mutex.
*/
share
->
table_map_id
=
~
0UL
;
share
->
cached_row_logging_check
=
-
1
;
#endif
memcpy
((
char
*
)
&
share
->
mem_root
,
(
char
*
)
&
mem_root
,
sizeof
(
mem_root
));
...
...
@@ -205,6 +207,7 @@ void init_tmp_table_share(TABLE_SHARE *share, const char *key,
*/
share
->
table_map_version
=
~
(
ulonglong
)
0
;
share
->
table_map_id
=
~
0UL
;
share
->
cached_row_logging_check
=
-
1
;
#endif
DBUG_VOID_RETURN
;
...
...
sql/table.h
View file @
a8a2d16c
...
...
@@ -191,6 +191,15 @@ typedef struct st_table_share
bool
waiting_on_cond
;
/* Protection against free */
ulong
table_map_id
;
/* for row-based replication */
ulonglong
table_map_version
;
/*
Cache for row-based replication table share checks that does not
need to be repeated. Possible values are: -1 when cache value is
not calculated yet, 0 when table *shall not* be replicated, 1 when
table *may* be replicated.
*/
int
cached_row_logging_check
;
/*
TRUE if this is a system table like 'mysql.proc', which we want to be
able to open and lock even when we already have some tables open and
...
...
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