mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
MW-394
* changed thd_binlog_format to return configured binlog format in wsrep execution, regardless of binlogging setting (i.e. with or without binlogging) * thd_binlog_format is used in innobase::write_row(), and would return confusing result there when log_bin==OFF
This commit is contained in:
@ -4852,9 +4852,15 @@ extern "C" int thd_non_transactional_update(const MYSQL_THD thd)
|
||||
|
||||
extern "C" int thd_binlog_format(const MYSQL_THD thd)
|
||||
{
|
||||
if (((WSREP(thd) && wsrep_emulate_bin_log) || mysql_bin_log.is_open()) &&
|
||||
thd->variables.option_bits & OPTION_BIN_LOG)
|
||||
return (int) thd->wsrep_binlog_format();
|
||||
#ifdef WITH_WSREP
|
||||
if (WSREP(thd))
|
||||
{
|
||||
/* for wsrep binlog format is meaningful also when binlogging is off */
|
||||
return (int) WSREP_BINLOG_FORMAT(thd->variables.binlog_format);
|
||||
}
|
||||
#endif /* WITH_WSREP */
|
||||
if (mysql_bin_log.is_open() && (thd->variables.option_bits & OPTION_BIN_LOG))
|
||||
return (int) thd->variables.binlog_format;
|
||||
else
|
||||
return BINLOG_FORMAT_UNSPEC;
|
||||
}
|
||||
|
@ -320,6 +320,10 @@ bool wsrep_create_like_table(THD* thd, TABLE_LIST* table,
|
||||
bool wsrep_node_is_donor();
|
||||
bool wsrep_node_is_synced();
|
||||
|
||||
#define WSREP_BINLOG_FORMAT(my_format) \
|
||||
((wsrep_forced_binlog_format != BINLOG_FORMAT_UNSPEC) ? \
|
||||
wsrep_forced_binlog_format : my_format)
|
||||
|
||||
#else /* WITH_WSREP */
|
||||
|
||||
#define WSREP(T) (0)
|
||||
@ -349,6 +353,7 @@ bool wsrep_node_is_synced();
|
||||
#define wsrep_thr_init() do {} while(0)
|
||||
#define wsrep_thr_deinit() do {} while(0)
|
||||
#define wsrep_running_threads (0)
|
||||
#define WSREP_BINLOG_FORMAT(my_format) my_format
|
||||
|
||||
#endif /* WITH_WSREP */
|
||||
#endif /* WSREP_MYSQLD_H */
|
||||
|
Reference in New Issue
Block a user