mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
merge mysql-5.1-rep+2-delivery1 --> mysql-5.1-rpl-merge
Conflicts: Text conflict in .bzr-mysql/default.conf Text conflict in mysql-test/extra/rpl_tests/rpl_loaddata.test Text conflict in mysql-test/r/mysqlbinlog2.result Text conflict in mysql-test/suite/binlog/r/binlog_stm_mix_innodb_myisam.result Text conflict in mysql-test/suite/binlog/r/binlog_unsafe.result Text conflict in mysql-test/suite/rpl/r/rpl_insert_id.result Text conflict in mysql-test/suite/rpl/r/rpl_loaddata.result Text conflict in mysql-test/suite/rpl/r/rpl_stm_auto_increment_bug33029.result Text conflict in mysql-test/suite/rpl/r/rpl_udf.result Text conflict in mysql-test/suite/rpl/t/rpl_slow_query_log.test Text conflict in sql/field.h Text conflict in sql/log.cc Text conflict in sql/log_event.cc Text conflict in sql/log_event_old.cc Text conflict in sql/mysql_priv.h Text conflict in sql/share/errmsg.txt Text conflict in sql/sp.cc Text conflict in sql/sql_acl.cc Text conflict in sql/sql_base.cc Text conflict in sql/sql_class.h Text conflict in sql/sql_db.cc Text conflict in sql/sql_delete.cc Text conflict in sql/sql_insert.cc Text conflict in sql/sql_lex.cc Text conflict in sql/sql_lex.h Text conflict in sql/sql_load.cc Text conflict in sql/sql_table.cc Text conflict in sql/sql_update.cc Text conflict in sql/sql_view.cc Conflict adding files to storage/innobase. Created directory. Conflict because storage/innobase is not versioned, but has versioned children. Versioned directory. Conflict adding file storage/innobase. Moved existing file to storage/innobase.moved. Conflict adding files to storage/innobase/handler. Created directory. Conflict because storage/innobase/handler is not versioned, but has versioned children. Versioned directory. Contents conflict in storage/innobase/handler/ha_innodb.cc
This commit is contained in:
@ -870,6 +870,31 @@ public:
|
||||
EVENT_SKIP_COUNT
|
||||
};
|
||||
|
||||
enum enum_event_cache_type
|
||||
{
|
||||
EVENT_INVALID_CACHE,
|
||||
/*
|
||||
If possible the event should use a non-transactional cache before
|
||||
being flushed to the binary log. This means that it must be flushed
|
||||
right after its correspondent statement is completed.
|
||||
*/
|
||||
EVENT_STMT_CACHE,
|
||||
/*
|
||||
The event should use a transactional cache before being flushed to
|
||||
the binary log. This means that it must be flushed upon commit or
|
||||
rollback.
|
||||
*/
|
||||
EVENT_TRANSACTIONAL_CACHE,
|
||||
/*
|
||||
The event must be written directly to the binary log without going
|
||||
through a cache.
|
||||
*/
|
||||
EVENT_NO_CACHE,
|
||||
/**
|
||||
If there is a need for different types, introduce them before this.
|
||||
*/
|
||||
EVENT_CACHE_COUNT
|
||||
};
|
||||
|
||||
/*
|
||||
The following type definition is to be used whenever data is placed
|
||||
@ -920,8 +945,12 @@ public:
|
||||
LOG_EVENT_SUPPRESS_USE_F for notes.
|
||||
*/
|
||||
uint16 flags;
|
||||
|
||||
bool cache_stmt;
|
||||
|
||||
/*
|
||||
Defines the type of the cache, if any, where the event will be
|
||||
stored before being flushed to disk.
|
||||
*/
|
||||
uint16 cache_type;
|
||||
|
||||
/**
|
||||
A storage to cache the global system variable's value.
|
||||
@ -933,7 +962,7 @@ public:
|
||||
THD* thd;
|
||||
|
||||
Log_event();
|
||||
Log_event(THD* thd_arg, uint16 flags_arg, bool cache_stmt);
|
||||
Log_event(THD* thd_arg, uint16 flags_arg, bool is_transactional);
|
||||
/*
|
||||
read_log_event() functions read an event from a binlog or relay
|
||||
log; used by SHOW BINLOG EVENTS, the binlog_dump thread on the
|
||||
@ -1031,7 +1060,18 @@ public:
|
||||
void set_relay_log_event() { flags |= LOG_EVENT_RELAY_LOG_F; }
|
||||
bool is_artificial_event() const { return flags & LOG_EVENT_ARTIFICIAL_F; }
|
||||
bool is_relay_log_event() const { return flags & LOG_EVENT_RELAY_LOG_F; }
|
||||
inline bool get_cache_stmt() const { return cache_stmt; }
|
||||
inline bool use_trans_cache() const
|
||||
{
|
||||
return (cache_type == Log_event::EVENT_TRANSACTIONAL_CACHE);
|
||||
}
|
||||
inline void set_direct_logging()
|
||||
{
|
||||
cache_type = Log_event::EVENT_NO_CACHE;
|
||||
}
|
||||
inline bool use_direct_logging()
|
||||
{
|
||||
return (cache_type == Log_event::EVENT_NO_CACHE);
|
||||
}
|
||||
Log_event(const char* buf, const Format_description_log_event
|
||||
*description_event);
|
||||
virtual ~Log_event() { free_temp_buf();}
|
||||
@ -1645,7 +1685,7 @@ public:
|
||||
#ifndef MYSQL_CLIENT
|
||||
|
||||
Query_log_event(THD* thd_arg, const char* query_arg, ulong query_length,
|
||||
bool using_trans, bool suppress_use, int error);
|
||||
bool using_trans, bool direct, bool suppress_use, int error);
|
||||
const char* get_db() { return db; }
|
||||
#ifdef HAVE_REPLICATION
|
||||
void pack_info(Protocol* protocol);
|
||||
@ -2895,8 +2935,8 @@ public:
|
||||
ulong query_length, uint fn_pos_start_arg,
|
||||
uint fn_pos_end_arg,
|
||||
enum_load_dup_handling dup_handling_arg,
|
||||
bool using_trans, bool suppress_use,
|
||||
int errcode);
|
||||
bool using_trans, bool direct,
|
||||
bool suppress_use, int errcode);
|
||||
#ifdef HAVE_REPLICATION
|
||||
void pack_info(Protocol* protocol);
|
||||
#endif /* HAVE_REPLICATION */
|
||||
@ -3304,16 +3344,14 @@ public:
|
||||
/* Special constants representing sets of flags */
|
||||
enum
|
||||
{
|
||||
TM_NO_FLAGS = 0U
|
||||
TM_NO_FLAGS = 0U,
|
||||
TM_BIT_LEN_EXACT_F = (1U << 0)
|
||||
};
|
||||
|
||||
void set_flags(flag_set flag) { m_flags |= flag; }
|
||||
void clear_flags(flag_set flag) { m_flags &= ~flag; }
|
||||
flag_set get_flags(flag_set flag) const { return m_flags & flag; }
|
||||
|
||||
#ifndef MYSQL_CLIENT
|
||||
Table_map_log_event(THD *thd, TABLE *tbl, ulong tid,
|
||||
bool is_transactional, uint16 flags);
|
||||
Table_map_log_event(THD *thd, TABLE *tbl, ulong tid, bool is_transactional);
|
||||
#endif
|
||||
#ifdef HAVE_REPLICATION
|
||||
Table_map_log_event(const char *buf, uint event_len,
|
||||
@ -3326,12 +3364,12 @@ public:
|
||||
table_def *create_table_def()
|
||||
{
|
||||
return new table_def(m_coltype, m_colcnt, m_field_metadata,
|
||||
m_field_metadata_size, m_null_bits);
|
||||
m_field_metadata_size, m_null_bits, m_flags);
|
||||
}
|
||||
#endif
|
||||
ulong get_table_id() const { return m_table_id; }
|
||||
const char *get_table_name() const { return m_tblnam; }
|
||||
const char *get_db_name() const { return m_dbnam; }
|
||||
#endif
|
||||
|
||||
virtual Log_event_type get_type_code() { return TABLE_MAP_EVENT; }
|
||||
virtual bool is_valid() const { return m_memory != NULL; /* we check malloc */ }
|
||||
@ -3883,6 +3921,7 @@ public:
|
||||
DBUG_PRINT("enter", ("m_incident: %d", m_incident));
|
||||
m_message.str= NULL; /* Just as a precaution */
|
||||
m_message.length= 0;
|
||||
set_direct_logging();
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
||||
@ -3892,6 +3931,7 @@ public:
|
||||
DBUG_ENTER("Incident_log_event::Incident_log_event");
|
||||
DBUG_PRINT("enter", ("m_incident: %d", m_incident));
|
||||
m_message= msg;
|
||||
set_direct_logging();
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user