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
17d00e3c
Commit
17d00e3c
authored
Mar 01, 2007
by
lars/lthalmann@dl145k.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/nfsdisk1/lars/bk/mysql-5.0-rpl
into mysql.com:/nfsdisk1/lars/bk/mysql-5.1-new-rpl
parents
8bbb5208
c0e985cd
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
104 additions
and
7 deletions
+104
-7
mysql-test/r/rpl_loaddata_charset.result
mysql-test/r/rpl_loaddata_charset.result
+0
-0
mysql-test/r/rpl_replicate_do.result
mysql-test/r/rpl_replicate_do.result
+34
-0
mysql-test/t/rpl_loaddata_charset.test
mysql-test/t/rpl_loaddata_charset.test
+0
-0
mysql-test/t/rpl_replicate_do.test
mysql-test/t/rpl_replicate_do.test
+32
-0
sql/mysql_priv.h
sql/mysql_priv.h
+1
-1
sql/mysqld.cc
sql/mysqld.cc
+1
-1
sql/slave.cc
sql/slave.cc
+4
-0
sql/sql_insert.cc
sql/sql_insert.cc
+2
-0
sql/sql_parse.cc
sql/sql_parse.cc
+25
-0
sql/sql_trigger.cc
sql/sql_trigger.cc
+1
-5
sql/sql_trigger.h
sql/sql_trigger.h
+4
-0
No files found.
mysql-test/r/rpl_loaddata
2
.result
→
mysql-test/r/rpl_loaddata
_charset
.result
View file @
17d00e3c
File moved
mysql-test/r/rpl_replicate_do.result
View file @
17d00e3c
...
...
@@ -41,3 +41,37 @@ select * from t1;
ts
2005-08-12 00:00:00
drop table t1;
*** master ***
create table t1 (a int, b int);
create trigger trg1 before insert on t1 for each row set new.b=2;
create table t2 (a int, b int);
create trigger trg2 before insert on t2 for each row set new.b=2;
show tables;
Tables_in_test
t1
t2
show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer
trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost
trg2 INSERT t2 set new.b=2 BEFORE NULL root@localhost
*** slave ***
show tables;
Tables_in_test
t1
show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer
trg1 INSERT t1 set new.b=2 BEFORE NULL root@localhost
*** master ***
drop trigger trg1;
drop trigger trg2;
show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer
*** slave ***
show tables;
Tables_in_test
t1
show triggers;
Trigger Event Table Statement Timing Created sql_mode Definer
*** master ***
drop table t1;
drop table t2;
mysql-test/t/rpl_loaddata
2
.test
→
mysql-test/t/rpl_loaddata
_charset
.test
View file @
17d00e3c
File moved
mysql-test/t/rpl_replicate_do.test
View file @
17d00e3c
...
...
@@ -58,3 +58,35 @@ drop table t1;
sync_slave_with_master
;
# End of 4.1 tests
#
# Bug#24478 DROP TRIGGER is not caught by replicate-*-table filters
#
--
echo
***
master
***
connection
master
;
create
table
t1
(
a
int
,
b
int
);
create
trigger
trg1
before
insert
on
t1
for
each
row
set
new
.
b
=
2
;
create
table
t2
(
a
int
,
b
int
);
create
trigger
trg2
before
insert
on
t2
for
each
row
set
new
.
b
=
2
;
show
tables
;
show
triggers
;
sync_slave_with_master
;
--
echo
***
slave
***
connection
slave
;
show
tables
;
show
triggers
;
--
echo
***
master
***
connection
master
;
drop
trigger
trg1
;
drop
trigger
trg2
;
show
triggers
;
sync_slave_with_master
;
--
echo
***
slave
***
connection
slave
;
show
tables
;
show
triggers
;
--
echo
***
master
***
connection
master
;
drop
table
t1
;
drop
table
t2
;
sync_slave_with_master
;
sql/mysql_priv.h
View file @
17d00e3c
...
...
@@ -99,7 +99,7 @@ void net_set_read_timeout(NET *net, uint timeout);
#define WARN_DEPRECATED(Thd,Ver,Old,New) \
do { \
DBUG_ASSERT(strncmp(Ver, MYSQL_SERVER_VERSION, sizeof(Ver)-1) > 0); \
if (
Thd != NULL)
\
if (
((gptr)Thd) != NULL)
\
push_warning_printf(((THD *)Thd), MYSQL_ERROR::WARN_LEVEL_WARN, \
ER_WARN_DEPRECATED_SYNTAX, ER(ER_WARN_DEPRECATED_SYNTAX), \
(Old), (Ver), (New)); \
...
...
sql/mysqld.cc
View file @
17d00e3c
...
...
@@ -7632,7 +7632,7 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
if
(
!
slave_warning_issued
)
//only show the warning once
{
slave_warning_issued
=
true
;
WARN_DEPRECATED
(
0
,
"5.2"
,
"for replication startup options"
,
WARN_DEPRECATED
(
NULL
,
"5.2"
,
"for replication startup options"
,
"'CHANGE MASTER'"
);
}
break
;
...
...
sql/slave.cc
View file @
17d00e3c
...
...
@@ -53,6 +53,10 @@ ulonglong relay_log_space_limit = 0;
*/
int
disconnect_slave_event_count
=
0
,
abort_slave_event_count
=
0
;
int
events_till_abort
=
-
1
;
#ifndef DBUG_OFF
static
int
events_till_disconnect
=
-
1
;
#endif
typedef
enum
{
SLAVE_THD_IO
,
SLAVE_THD_SQL
}
SLAVE_THD_TYPE
;
...
...
sql/sql_insert.cc
View file @
17d00e3c
...
...
@@ -362,6 +362,7 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list,
List_item
*
values
;
Name_resolution_context
*
context
;
Name_resolution_context_state
ctx_state
;
#ifndef EMBEDDED_LIBRARY
char
*
query
=
thd
->
query
;
/*
log_on is about delayed inserts only.
...
...
@@ -370,6 +371,7 @@ bool mysql_insert(THD *thd,TABLE_LIST *table_list,
*/
bool
log_on
=
((
thd
->
options
&
OPTION_BIN_LOG
)
||
(
!
(
thd
->
security_ctx
->
master_access
&
SUPER_ACL
)));
#endif
thr_lock_type
lock_type
=
table_list
->
lock_type
;
Item
*
unused_conds
=
0
;
DBUG_ENTER
(
"mysql_insert"
);
...
...
sql/sql_parse.cc
View file @
17d00e3c
...
...
@@ -27,6 +27,7 @@
#include "sp_cache.h"
#include "events.h"
#include "event_data_objects.h"
#include "sql_trigger.h"
/* Used in error handling only */
#define SP_TYPE_STRING(LP) \
...
...
@@ -1596,6 +1597,30 @@ mysql_execute_command(THD *thd)
#ifdef HAVE_REPLICATION
if
(
unlikely
(
thd
->
slave_thread
))
{
if
(
lex
->
sql_command
==
SQLCOM_DROP_TRIGGER
)
{
/*
When dropping a trigger, we need to load its table name
before checking slave filter rules.
*/
add_table_for_trigger
(
thd
,
thd
->
lex
->
spname
,
1
,
&
all_tables
);
if
(
!
all_tables
)
{
/*
If table name cannot be loaded,
it means the trigger does not exists possibly because
CREATE TRIGGER was previously skipped for this trigger
according to slave filtering rules.
Returning success without producing any errors in this case.
*/
DBUG_RETURN
(
0
);
}
// force searching in slave.cc:tables_ok()
all_tables
->
updating
=
1
;
}
/*
Check if statment should be skipped because of slave filtering
rules
...
...
sql/sql_trigger.cc
View file @
17d00e3c
...
...
@@ -106,10 +106,6 @@ const LEX_STRING trg_event_type_names[]=
};
static
int
add_table_for_trigger
(
THD
*
thd
,
sp_name
*
trig
,
bool
if_exists
,
TABLE_LIST
**
table
);
class
Handle_old_incorrect_sql_modes_hook
:
public
Unknown_key_hook
{
private:
...
...
@@ -1180,7 +1176,7 @@ bool Table_triggers_list::get_trigger_info(THD *thd, trg_event_type event,
1 Error
*/
static
int
int
add_table_for_trigger
(
THD
*
thd
,
sp_name
*
trig
,
bool
if_exists
,
TABLE_LIST
**
table
)
{
...
...
sql/sql_trigger.h
View file @
17d00e3c
...
...
@@ -137,3 +137,7 @@ private:
extern
const
LEX_STRING
trg_action_time_type_names
[];
extern
const
LEX_STRING
trg_event_type_names
[];
int
add_table_for_trigger
(
THD
*
thd
,
sp_name
*
trig
,
bool
if_exists
,
TABLE_LIST
**
table
);
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