mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
WL#5370 Keep forward-compatibility when changing
'CREATE TABLE IF NOT EXISTS ... SELECT' behaviour BUG#55474, BUG#55499, BUG#55598, BUG#55616 and BUG#55777 are fixed in this patch too. This is the 5.1 part. It implements: - if the table exists, binlog two events: CREATE TABLE IF NOT EXISTS and INSERT ... SELECT - Insert nothing and binlog nothing on master if the existing object is a view. It only generates a warning that table already exists.
This commit is contained in:
@ -2622,7 +2622,9 @@ public:
|
||||
|
||||
|
||||
class select_insert :public select_result_interceptor {
|
||||
public:
|
||||
protected:
|
||||
virtual int write_to_binlog(bool is_trans, int errcode);
|
||||
public:
|
||||
TABLE_LIST *table_list;
|
||||
TABLE *table;
|
||||
List<Item> *fields;
|
||||
@ -2658,6 +2660,8 @@ class select_create: public select_insert {
|
||||
MYSQL_LOCK *m_lock;
|
||||
/* m_lock or thd->extra_lock */
|
||||
MYSQL_LOCK **m_plock;
|
||||
|
||||
virtual int write_to_binlog(bool is_trans, int errcode);
|
||||
public:
|
||||
select_create (TABLE_LIST *table_arg,
|
||||
HA_CREATE_INFO *create_info_par,
|
||||
@ -2673,7 +2677,7 @@ public:
|
||||
{}
|
||||
int prepare(List<Item> &list, SELECT_LEX_UNIT *u);
|
||||
|
||||
int binlog_show_create_table(TABLE **tables, uint count);
|
||||
int binlog_show_create_table(TABLE **tables, uint count, int errcode);
|
||||
void store_values(List<Item> &values);
|
||||
void send_error(uint errcode,const char *err);
|
||||
bool send_eof();
|
||||
|
Reference in New Issue
Block a user