Skip to content

Commit 221f86c

Browse files
rockeetinikep
authored andcommitted
Fix rdb_i_s_sst_props_fields_info (percona#1267)
Upstream commit ID: facebook/mysql-5.6@8fae2bb PS-8755: Merge percona-202301 (https://jira.percona.com/browse/PS-8755) Summary: In `rdb_i_s_sst_props_fields_info` definition, flag `MY_I_S_MAYBE_NULL` is missing for fields `COMPRESSION_ALGO`, `FILTER_POLICY`, `COMPRESSION_OPTIONS`, causing the `set_null` does not take effect, these 3 fields will keep last SST's value. This PR fixed this issue. Pull Request resolved: facebook/mysql-5.6#1267 Reviewed By: lth Differential Revision: D42928109 Pulled By: hermanlee fbshipit-source-id: 662dc11e7c9a8f8c0758006e20ccc739ebe09f40
1 parent 4c334c6 commit 221f86c

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

storage/rocksdb/rdb_i_s.cc

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1670,16 +1670,18 @@ static ST_FIELD_INFO rdb_i_s_sst_props_fields_info[] = {
16701670
MYSQL_TYPE_LONGLONG, 0),
16711671
ROCKSDB_FIELD_INFO("FILTER_BLOCK_SIZE", sizeof(int64_t),
16721672
MYSQL_TYPE_LONGLONG, 0),
1673-
ROCKSDB_FIELD_INFO("COMPRESSION_ALGO", NAME_LEN + 1, MYSQL_TYPE_STRING, 0),
1673+
ROCKSDB_FIELD_INFO("COMPRESSION_ALGO", NAME_LEN + 1, MYSQL_TYPE_STRING,
1674+
MY_I_S_MAYBE_NULL),
16741675
ROCKSDB_FIELD_INFO("CREATION_TIME", sizeof(int64_t), MYSQL_TYPE_LONGLONG,
16751676
0),
16761677
ROCKSDB_FIELD_INFO("FILE_CREATION_TIME", sizeof(int64_t),
16771678
MYSQL_TYPE_LONGLONG, 0),
16781679
ROCKSDB_FIELD_INFO("OLDEST_KEY_TIME", sizeof(int64_t), MYSQL_TYPE_LONGLONG,
16791680
0),
1680-
ROCKSDB_FIELD_INFO("FILTER_POLICY", NAME_LEN + 1, MYSQL_TYPE_STRING, 0),
1681+
ROCKSDB_FIELD_INFO("FILTER_POLICY", NAME_LEN + 1, MYSQL_TYPE_STRING,
1682+
MY_I_S_MAYBE_NULL),
16811683
ROCKSDB_FIELD_INFO("COMPRESSION_OPTIONS", NAME_LEN + 1, MYSQL_TYPE_STRING,
1682-
0),
1684+
MY_I_S_MAYBE_NULL),
16831685
ROCKSDB_FIELD_INFO_END};
16841686

16851687
static int rdb_i_s_sst_props_fill_table(
@@ -1756,6 +1758,7 @@ static int rdb_i_s_sst_props_fill_table(
17561758
if (props.second->compression_name.empty()) {
17571759
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_null();
17581760
} else {
1761+
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_notnull();
17591762
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->store(
17601763
props.second->compression_name.c_str(),
17611764
props.second->compression_name.size(), system_charset_info);
@@ -1769,13 +1772,15 @@ static int rdb_i_s_sst_props_fill_table(
17691772
if (props.second->filter_policy_name.empty()) {
17701773
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_null();
17711774
} else {
1775+
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_notnull();
17721776
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->store(
17731777
props.second->filter_policy_name.c_str(),
17741778
props.second->filter_policy_name.size(), system_charset_info);
17751779
}
17761780
if (props.second->compression_options.empty()) {
17771781
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_null();
17781782
} else {
1783+
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_notnull();
17791784
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->store(
17801785
props.second->compression_options.c_str(),
17811786
props.second->compression_options.size(), system_charset_info);

0 commit comments

Comments
 (0)