1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +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:
2010-08-18 12:56:06 +08:00
parent 12f7d57d42
commit b766a51f41
15 changed files with 1191 additions and 27 deletions

View File

@ -1817,6 +1817,23 @@ typedef struct st_lex : public Query_tables_list
*/
bool protect_against_global_read_lock;
/*
The following three variables are used in 'CREATE TABLE IF NOT EXISTS ...
SELECT' statement. They are used to binlog the statement.
create_select_start_with_brace will be set if there is a '(' before
the first SELECT clause
create_select_pos records the relative position of the SELECT clause
in the whole statement.
create_select_in_comment will be set if SELECT keyword is in conditional
comment.
*/
bool create_select_start_with_brace;
uint create_select_pos;
bool create_select_in_comment;
st_lex();
virtual ~st_lex()