Skip to content

Commit 7b500f0

Browse files
committed
MDEV-29078 For old binary logs explicit_defaults_for_timestamp presumed to be OFF, server value ignored
don't assume anymore that OPTIONS_WRITTEN_TO_BIN_LOG is fixed once and forever. Instead, deduct master's OPTIONS_WRITTEN_TO_BIN_LOG from the master's version in binlog.
1 parent 56c7d14 commit 7b500f0

10 files changed

+191
-40
lines changed

mysql-test/main/mysqlbinlog.result

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -724,7 +724,7 @@ ROLLBACK/*!*/;
724724
use `test`/*!*/;
725725
SET TIMESTAMP=1253783037/*!*/;
726726
SET @@session.pseudo_thread_id=999999999/*!*/;
727-
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
727+
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
728728
SET @@session.sql_mode=0/*!*/;
729729
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
730730
/*!\C latin1 *//*!*/;
@@ -778,7 +778,7 @@ DELIMITER /*!*/;
778778
ROLLBACK/*!*/;
779779
SET TIMESTAMP=1253783037/*!*/;
780780
SET @@session.pseudo_thread_id=999999999/*!*/;
781-
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
781+
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
782782
SET @@session.sql_mode=0/*!*/;
783783
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
784784
/*!\C latin1 *//*!*/;
@@ -813,7 +813,7 @@ ROLLBACK /* added by mysqlbinlog */;
813813
DELIMITER /*!*/;
814814
SET TIMESTAMP=1266652094/*!*/;
815815
SET @@session.pseudo_thread_id=999999999/*!*/;
816-
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
816+
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
817817
SET @@session.sql_mode=0/*!*/;
818818
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
819819
/*!\C latin1 *//*!*/;
@@ -855,7 +855,7 @@ ROLLBACK /* added by mysqlbinlog */;
855855
DELIMITER /*!*/;
856856
SET TIMESTAMP=1266652094/*!*/;
857857
SET @@session.pseudo_thread_id=999999999/*!*/;
858-
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
858+
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
859859
SET @@session.sql_mode=0/*!*/;
860860
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
861861
/*!\C latin1 *//*!*/;
@@ -973,7 +973,7 @@ AAAAAAAAAAAAAAAAAAAgrgJSFzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
973973
# Event: Query thread_id=1 exec_time=0 error_code=0
974974
SET TIMESTAMP=1375907364/*!*/;
975975
SET @@session.pseudo_thread_id=1/*!*/;
976-
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
976+
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
977977
SET @@session.sql_mode=0/*!*/;
978978
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
979979
/*!\C latin1 *//*!*/;
@@ -1056,7 +1056,7 @@ AAAAAAAAAAAAAAAAAAA/rQJSGzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
10561056
# Event: Query thread_id=1 exec_time=1 error_code=0
10571057
SET TIMESTAMP=1375907141/*!*/;
10581058
SET @@session.pseudo_thread_id=1/*!*/;
1059-
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
1059+
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
10601060
SET @@session.sql_mode=0/*!*/;
10611061
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
10621062
/*!\C latin1 *//*!*/;
@@ -1139,7 +1139,7 @@ AAAAAAAAAAAAAAAAAAAnrAJSHzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
11391139
# Event: Query thread_id=1 exec_time=0 error_code=0
11401140
SET TIMESTAMP=1375906879/*!*/;
11411141
SET @@session.pseudo_thread_id=1/*!*/;
1142-
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
1142+
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
11431143
SET @@session.sql_mode=0/*!*/;
11441144
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
11451145
/*!\C latin1 *//*!*/;
@@ -1222,7 +1222,7 @@ AAAAAAAAAAAAAAAAAABbsAJSEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC
12221222
# Event: Query thread_id=1 exec_time=0 error_code=0
12231223
SET TIMESTAMP=1375907933/*!*/;
12241224
SET @@session.pseudo_thread_id=1/*!*/;
1225-
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
1225+
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
12261226
SET @@session.sql_mode=0/*!*/;
12271227
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
12281228
/*!\C latin1 *//*!*/;
920 Bytes
Binary file not shown.

mysql-test/suite/binlog/r/binlog_base64_flag.result

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ ROLLBACK/*!*/;
5959
<#>
6060
use `test`/*!*/;
6161
SET TIMESTAMP=1196959712/*!*/;
62-
<#>SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1, @@session.sql_if_exists=0, @@session.explicit_defaults_for_timestamp=0/*!*/;
62+
<#>SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
6363
SET @@session.sql_mode=0/*!*/;
6464
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
6565
/*!\C latin1 *//*!*/;
Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
#
2+
# MDEV-29078 For old binary logs explicit_defaults_for_timestamp presumed to be OFF, server value ignored
3+
#
4+
include/master-slave.inc
5+
[connection master]
6+
connection slave;
7+
include/stop_slave.inc
8+
connection master;
9+
flush binary logs;
10+
create table t2 (a timestamp);
11+
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
12+
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
13+
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
14+
DELIMITER /*!*/;
15+
ROLLBACK/*!*/;
16+
use `test`/*!*/;
17+
SET TIMESTAMP=1658586280/*!*/;
18+
SET @@session.pseudo_thread_id=999999999/*!*/;
19+
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1, @@session.check_constraint_checks=1/*!*/;
20+
SET @@session.sql_mode=1411383296/*!*/;
21+
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
22+
/*!\C utf8 *//*!*/;
23+
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=8/*!*/;
24+
SET @@session.lc_time_names=0/*!*/;
25+
SET @@session.collation_database=DEFAULT/*!*/;
26+
create table t1 (f1 timestamp, f2 timestamp)
27+
/*!*/;
28+
START TRANSACTION
29+
/*!*/;
30+
SET TIMESTAMP=1658586288/*!*/;
31+
insert t1 values (NULL, NULL)
32+
/*!*/;
33+
SET TIMESTAMP=1658586288/*!*/;
34+
COMMIT
35+
/*!*/;
36+
START TRANSACTION
37+
/*!*/;
38+
SET TIMESTAMP=1658586335/*!*/;
39+
insert t1 () values ()
40+
/*!*/;
41+
SET TIMESTAMP=1658586335/*!*/;
42+
COMMIT
43+
/*!*/;
44+
DELIMITER ;
45+
# End of log file
46+
ROLLBACK /* added by mysqlbinlog */;
47+
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
48+
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;
49+
connection slave;
50+
set global explicit_defaults_for_timestamp=1;
51+
reset slave;
52+
include/start_slave.inc
53+
show create table t1;
54+
Table Create Table
55+
t1 CREATE TABLE `t1` (
56+
`f1` timestamp NULL DEFAULT NULL,
57+
`f2` timestamp NULL DEFAULT NULL
58+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
59+
show create table t2;
60+
Table Create Table
61+
t2 CREATE TABLE `t2` (
62+
`a` timestamp NULL DEFAULT NULL
63+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
64+
set time_zone='+2:00';
65+
select * from t1;
66+
f1 f2
67+
NULL NULL
68+
NULL NULL
69+
drop table t1;
70+
include/stop_slave.inc
71+
set global explicit_defaults_for_timestamp=0;
72+
reset slave;
73+
include/start_slave.inc
74+
show create table t1;
75+
Table Create Table
76+
t1 CREATE TABLE `t1` (
77+
`f1` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
78+
`f2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
79+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
80+
show create table t2;
81+
Table Create Table
82+
t2 CREATE TABLE `t2` (
83+
`a` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp()
84+
) ENGINE=MyISAM DEFAULT CHARSET=latin1
85+
select * from t1;
86+
f1 f2
87+
2022-07-23 16:24:48 2022-07-23 16:24:48
88+
2022-07-23 16:25:35 0000-00-00 00:00:00
89+
drop table t1;
90+
connection master;
91+
drop table t2;
92+
include/rpl_end.inc
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
--version=10.5.99
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
--echo #
2+
--echo # MDEV-29078 For old binary logs explicit_defaults_for_timestamp presumed to be OFF, server value ignored
3+
--echo #
4+
5+
--source include/have_binlog_format_mixed.inc
6+
--source include/master-slave.inc
7+
8+
--connection slave
9+
--source include/stop_slave.inc
10+
11+
--connection master
12+
--let $datadir= `SELECT @@datadir`
13+
14+
flush binary logs;
15+
create table t2 (a timestamp);
16+
17+
--save_master_pos
18+
19+
--remove_file $datadir/master-bin.000001
20+
--copy_file $MYSQL_TEST_DIR/std_data/mdev29078-mysql-bin.000001 $datadir/master-bin.000001
21+
22+
--exec $MYSQL_BINLOG --short-form $datadir/master-bin.000001
23+
24+
--connection slave
25+
26+
set global explicit_defaults_for_timestamp=1;
27+
reset slave;
28+
--source include/start_slave.inc
29+
--sync_with_master
30+
show create table t1;
31+
show create table t2;
32+
set time_zone='+2:00';
33+
select * from t1;
34+
drop table t1;
35+
--source include/stop_slave.inc
36+
37+
set global explicit_defaults_for_timestamp=0;
38+
reset slave;
39+
--source include/start_slave.inc
40+
--sync_with_master
41+
show create table t1;
42+
show create table t2;
43+
select * from t1;
44+
drop table t1;
45+
46+
--connection master
47+
drop table t2;
48+
49+
--source include/rpl_end.inc

sql/log_event.cc

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2195,6 +2195,7 @@ Format_description_log_event(uint8 binlog_ver, const char* server_ver)
21952195
break;
21962196
}
21972197
calc_server_version_split();
2198+
deduct_options_written_to_bin_log();
21982199
checksum_alg= BINLOG_CHECKSUM_ALG_UNDEF;
21992200
reset_crypto();
22002201
}
@@ -2255,6 +2256,7 @@ Format_description_log_event(const char* buf,
22552256
{
22562257
checksum_alg= BINLOG_CHECKSUM_ALG_UNDEF;
22572258
}
2259+
deduct_options_written_to_bin_log();
22582260
reset_crypto();
22592261

22602262
DBUG_VOID_RETURN;
@@ -2331,6 +2333,27 @@ void Format_description_log_event::calc_server_version_split()
23312333
}
23322334

23332335

2336+
void Format_description_log_event::deduct_options_written_to_bin_log()
2337+
{
2338+
options_written_to_bin_log= OPTION_AUTO_IS_NULL | OPTION_NOT_AUTOCOMMIT |
2339+
OPTION_NO_FOREIGN_KEY_CHECKS | OPTION_RELAXED_UNIQUE_CHECKS;
2340+
if (!server_version_split.version_is_valid() ||
2341+
server_version_split.kind == master_version_split::KIND_MYSQL ||
2342+
server_version_split < Version(10,5,2))
2343+
return;
2344+
options_written_to_bin_log|= OPTION_IF_EXISTS;
2345+
if (server_version_split[0] == 10)
2346+
{
2347+
const static char v[10]={99,99,99,99,99,17,9,5,4,2};
2348+
if (server_version_split[1] < 10 &&
2349+
server_version_split[2] < v[server_version_split[1]])
2350+
return;
2351+
}
2352+
options_written_to_bin_log|= OPTION_EXPLICIT_DEF_TIMESTAMP;
2353+
2354+
DBUG_ASSERT(options_written_to_bin_log == OPTIONS_WRITTEN_TO_BIN_LOG);
2355+
}
2356+
23342357
/**
23352358
@return TRUE is the event's version is earlier than one that introduced
23362359
the replication event checksum. FALSE otherwise.

sql/log_event.h

Lines changed: 8 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -508,33 +508,16 @@ class String;
508508
be written to the binlog. OPTIONS_WRITTEN_TO_BIN_LOG could be
509509
written into the Format_description_log_event, so that if later we
510510
don't want to replicate a variable we did replicate, or the
511-
contrary, it's doable. But it should not be too hard to decide once
512-
for all of what we replicate and what we don't, among the fixed 32
513-
bits of thd->options.
514-
515-
I (Guilhem) have read through every option's usage, and it looks
516-
like OPTION_AUTO_IS_NULL and OPTION_NO_FOREIGN_KEYS are the only
517-
ones which alter how the query modifies the table. It's good to
518-
replicate OPTION_RELAXED_UNIQUE_CHECKS too because otherwise, the
519-
slave may insert data slower than the master, in InnoDB.
520-
OPTION_BIG_SELECTS is not needed (the slave thread runs with
521-
max_join_size=HA_POS_ERROR) and OPTION_BIG_TABLES is not needed
522-
either, as the manual says (because a too big in-memory temp table
523-
is automatically written to disk).
511+
contrary, it's doable. But it should not be too hard to deduct
512+
the value of OPTIONS_WRITTEN_TO_BIN_LOG from the master's version.
513+
514+
This is done in deduct_options_written_to_bin_log().
515+
You *must* update it, when changing the definition below.
524516
*/
525517
#define OPTIONS_WRITTEN_TO_BIN_LOG (OPTION_EXPLICIT_DEF_TIMESTAMP |\
526518
OPTION_AUTO_IS_NULL | OPTION_NO_FOREIGN_KEY_CHECKS | \
527519
OPTION_RELAXED_UNIQUE_CHECKS | OPTION_NOT_AUTOCOMMIT | OPTION_IF_EXISTS)
528520

529-
/* Shouldn't be defined before */
530-
#define EXPECTED_OPTIONS \
531-
((1ULL << 14) | (1ULL << 26) | (1ULL << 27) | (1ULL << 19) | (1ULL << 24) | (1ULL << 28))
532-
533-
#if OPTIONS_WRITTEN_TO_BIN_LOG != EXPECTED_OPTIONS
534-
#error OPTIONS_WRITTEN_TO_BIN_LOG must NOT change their values!
535-
#endif
536-
#undef EXPECTED_OPTIONS /* You shouldn't use this one */
537-
538521
#define CHECKSUM_CRC32_SIGNATURE_LEN 4
539522
/**
540523
defined statically while there is just one alg implemented
@@ -1832,10 +1815,7 @@ class Log_event
18321815
<td>The flags in @c thd->options, binary AND-ed with @c
18331816
OPTIONS_WRITTEN_TO_BIN_LOG. The @c thd->options bitfield contains
18341817
options for "SELECT". @c OPTIONS_WRITTEN identifies those options
1835-
that need to be written to the binlog (not all do). Specifically,
1836-
@c OPTIONS_WRITTEN_TO_BIN_LOG equals (@c OPTION_AUTO_IS_NULL | @c
1837-
OPTION_NO_FOREIGN_KEY_CHECKS | @c OPTION_RELAXED_UNIQUE_CHECKS |
1838-
@c OPTION_NOT_AUTOCOMMIT), or 0x0c084000 in hex.
1818+
that need to be written to the binlog (not all do).
18391819
18401820
These flags correspond to the SQL variables SQL_AUTO_IS_NULL,
18411821
FOREIGN_KEY_CHECKS, UNIQUE_CHECKS, and AUTOCOMMIT, documented in
@@ -2826,6 +2806,7 @@ class Format_description_log_event: public Start_log_event_v3
28262806
};
28272807
master_version_split server_version_split;
28282808
const uint8 *event_type_permutation;
2809+
uint32 options_written_to_bin_log;
28292810

28302811
Format_description_log_event(uint8 binlog_ver, const char* server_ver=0);
28312812
Format_description_log_event(const char* buf, uint event_len,
@@ -2873,6 +2854,7 @@ class Format_description_log_event: public Start_log_event_v3
28732854
}
28742855

28752856
void calc_server_version_split();
2857+
void deduct_options_written_to_bin_log();
28762858
static bool is_version_before_checksum(const master_version_split *version_split);
28772859
protected:
28782860
#if defined(MYSQL_SERVER) && defined(HAVE_REPLICATION)

sql/log_event_client.cc

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1885,6 +1885,7 @@ bool Query_log_event::print_query_header(IO_CACHE* file,
18851885
if (unlikely(tmp)) /* some bits have changed */
18861886
{
18871887
bool need_comma= 0;
1888+
ulonglong mask= glob_description_event->options_written_to_bin_log;
18881889
if (my_b_write_string(file, "SET ") ||
18891890
print_set_option(file, tmp, OPTION_NO_FOREIGN_KEY_CHECKS, ~flags2,
18901891
"@@session.foreign_key_checks", &need_comma)||
@@ -1896,10 +1897,11 @@ bool Query_log_event::print_query_header(IO_CACHE* file,
18961897
"@@session.autocommit", &need_comma) ||
18971898
print_set_option(file, tmp, OPTION_NO_CHECK_CONSTRAINT_CHECKS, ~flags2,
18981899
"@@session.check_constraint_checks", &need_comma) ||
1899-
print_set_option(file, tmp, OPTION_IF_EXISTS, flags2,
1900-
"@@session.sql_if_exists", &need_comma)||
1901-
print_set_option(file, tmp, OPTION_EXPLICIT_DEF_TIMESTAMP, flags2,
1902-
"@@session.explicit_defaults_for_timestamp", &need_comma)||
1900+
print_set_option(file, tmp, mask & OPTION_IF_EXISTS, flags2,
1901+
"@@session.sql_if_exists", &need_comma) ||
1902+
print_set_option(file, tmp, mask & OPTION_EXPLICIT_DEF_TIMESTAMP, flags2,
1903+
"@@session.explicit_defaults_for_timestamp",
1904+
&need_comma) ||
19031905
my_b_printf(file,"%s\n", print_event_info->delimiter))
19041906
goto err;
19051907
print_event_info->flags2= flags2;

sql/log_event_server.cc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1718,7 +1718,9 @@ int Query_log_event::do_apply_event(rpl_group_info *rgi,
17181718
OPTIONS_WRITTEN_TO_BIN_LOG must take their value from
17191719
flags2.
17201720
*/
1721-
thd->variables.option_bits= flags2|(thd->variables.option_bits & ~OPTIONS_WRITTEN_TO_BIN_LOG);
1721+
ulonglong mask= rli->relay_log.description_event_for_exec->options_written_to_bin_log;
1722+
thd->variables.option_bits= (flags2 & mask) |
1723+
(thd->variables.option_bits & ~mask);
17221724
}
17231725
/*
17241726
else, we are in a 3.23/4.0 binlog; we previously received a

0 commit comments

Comments
 (0)