Skip to content

Commit 2e08bec

Browse files
rockeetinikep
authored andcommitted
Fix rdb_i_s_sst_props_fields_info (facebook#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: facebook#1267 Reviewed By: lth Differential Revision: D42928109 Pulled By: hermanlee fbshipit-source-id: 662dc11
1 parent 1e90084 commit 2e08bec

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

storage/rocksdb/rdb_i_s.cc

+8-3
Original file line numberDiff line numberDiff line change
@@ -1398,16 +1398,18 @@ static ST_FIELD_INFO rdb_i_s_sst_props_fields_info[] = {
13981398
MYSQL_TYPE_LONGLONG, 0),
13991399
ROCKSDB_FIELD_INFO("FILTER_BLOCK_SIZE", sizeof(int64_t),
14001400
MYSQL_TYPE_LONGLONG, 0),
1401-
ROCKSDB_FIELD_INFO("COMPRESSION_ALGO", NAME_LEN + 1, MYSQL_TYPE_STRING, 0),
1401+
ROCKSDB_FIELD_INFO("COMPRESSION_ALGO", NAME_LEN + 1, MYSQL_TYPE_STRING,
1402+
MY_I_S_MAYBE_NULL),
14021403
ROCKSDB_FIELD_INFO("CREATION_TIME", sizeof(int64_t), MYSQL_TYPE_LONGLONG,
14031404
0),
14041405
ROCKSDB_FIELD_INFO("FILE_CREATION_TIME", sizeof(int64_t),
14051406
MYSQL_TYPE_LONGLONG, 0),
14061407
ROCKSDB_FIELD_INFO("OLDEST_KEY_TIME", sizeof(int64_t), MYSQL_TYPE_LONGLONG,
14071408
0),
1408-
ROCKSDB_FIELD_INFO("FILTER_POLICY", NAME_LEN + 1, MYSQL_TYPE_STRING, 0),
1409+
ROCKSDB_FIELD_INFO("FILTER_POLICY", NAME_LEN + 1, MYSQL_TYPE_STRING,
1410+
MY_I_S_MAYBE_NULL),
14091411
ROCKSDB_FIELD_INFO("COMPRESSION_OPTIONS", NAME_LEN + 1, MYSQL_TYPE_STRING,
1410-
0),
1412+
MY_I_S_MAYBE_NULL),
14111413
ROCKSDB_FIELD_INFO_END};
14121414

14131415
static int rdb_i_s_sst_props_fill_table(
@@ -1476,6 +1478,7 @@ static int rdb_i_s_sst_props_fill_table(
14761478
if (props.second->compression_name.empty()) {
14771479
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_null();
14781480
} else {
1481+
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_notnull();
14791482
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->store(
14801483
props.second->compression_name.c_str(),
14811484
props.second->compression_name.size(), system_charset_info);
@@ -1489,13 +1492,15 @@ static int rdb_i_s_sst_props_fill_table(
14891492
if (props.second->filter_policy_name.empty()) {
14901493
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_null();
14911494
} else {
1495+
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_notnull();
14921496
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->store(
14931497
props.second->filter_policy_name.c_str(),
14941498
props.second->filter_policy_name.size(), system_charset_info);
14951499
}
14961500
if (props.second->compression_options.empty()) {
14971501
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_null();
14981502
} else {
1503+
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_notnull();
14991504
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->store(
15001505
props.second->compression_options.c_str(),
15011506
props.second->compression_options.size(), system_charset_info);

0 commit comments

Comments
 (0)