Skip to content

Commit 8fae2bb

Browse files
rockeetfacebook-github-bot
authored andcommitted
Fix rdb_i_s_sst_props_fields_info (#1267)
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: #1267 Reviewed By: lth Differential Revision: D42928109 Pulled By: hermanlee fbshipit-source-id: 662dc11
1 parent 0eccd65 commit 8fae2bb

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
@@ -1691,16 +1691,18 @@ static ST_FIELD_INFO rdb_i_s_sst_props_fields_info[] = {
16911691
MYSQL_TYPE_LONGLONG, 0),
16921692
ROCKSDB_FIELD_INFO("FILTER_BLOCK_SIZE", sizeof(int64_t),
16931693
MYSQL_TYPE_LONGLONG, 0),
1694-
ROCKSDB_FIELD_INFO("COMPRESSION_ALGO", NAME_LEN + 1, MYSQL_TYPE_STRING, 0),
1694+
ROCKSDB_FIELD_INFO("COMPRESSION_ALGO", NAME_LEN + 1, MYSQL_TYPE_STRING,
1695+
MY_I_S_MAYBE_NULL),
16951696
ROCKSDB_FIELD_INFO("CREATION_TIME", sizeof(int64_t), MYSQL_TYPE_LONGLONG,
16961697
0),
16971698
ROCKSDB_FIELD_INFO("FILE_CREATION_TIME", sizeof(int64_t),
16981699
MYSQL_TYPE_LONGLONG, 0),
16991700
ROCKSDB_FIELD_INFO("OLDEST_KEY_TIME", sizeof(int64_t), MYSQL_TYPE_LONGLONG,
17001701
0),
1701-
ROCKSDB_FIELD_INFO("FILTER_POLICY", NAME_LEN + 1, MYSQL_TYPE_STRING, 0),
1702+
ROCKSDB_FIELD_INFO("FILTER_POLICY", NAME_LEN + 1, MYSQL_TYPE_STRING,
1703+
MY_I_S_MAYBE_NULL),
17021704
ROCKSDB_FIELD_INFO("COMPRESSION_OPTIONS", NAME_LEN + 1, MYSQL_TYPE_STRING,
1703-
0),
1705+
MY_I_S_MAYBE_NULL),
17041706
ROCKSDB_FIELD_INFO_END};
17051707

17061708
static int rdb_i_s_sst_props_fill_table(
@@ -1769,6 +1771,7 @@ static int rdb_i_s_sst_props_fill_table(
17691771
if (props.second->compression_name.empty()) {
17701772
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_null();
17711773
} else {
1774+
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_notnull();
17721775
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->store(
17731776
props.second->compression_name.c_str(),
17741777
props.second->compression_name.size(), system_charset_info);
@@ -1782,13 +1785,15 @@ static int rdb_i_s_sst_props_fill_table(
17821785
if (props.second->filter_policy_name.empty()) {
17831786
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_null();
17841787
} else {
1788+
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_notnull();
17851789
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->store(
17861790
props.second->filter_policy_name.c_str(),
17871791
props.second->filter_policy_name.size(), system_charset_info);
17881792
}
17891793
if (props.second->compression_options.empty()) {
17901794
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_null();
17911795
} else {
1796+
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_notnull();
17921797
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->store(
17931798
props.second->compression_options.c_str(),
17941799
props.second->compression_options.size(), system_charset_info);

0 commit comments

Comments
 (0)