Skip to content

Commit

Permalink
Fix rdb_i_s_sst_props_fields_info (percona#1267)
Browse files Browse the repository at this point in the history
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
  • Loading branch information
rockeet authored and oleksandr-kachan committed Apr 16, 2024
1 parent f79e22f commit 708360c
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 6 deletions.
6 changes: 3 additions & 3 deletions mysql-test/suite/rocksdb/r/i_s_sst_props.result
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,12 @@ ROCKSDB_SST_PROPS CREATE TEMPORARY TABLE `ROCKSDB_SST_PROPS` (
`INDEX_PARTITIONS` int NOT NULL DEFAULT '0',
`TOP_LEVEL_INDEX_SIZE` bigint NOT NULL DEFAULT '0',
`FILTER_BLOCK_SIZE` bigint NOT NULL DEFAULT '0',
`COMPRESSION_ALGO` varchar(193) NOT NULL DEFAULT '',
`COMPRESSION_ALGO` varchar(193) DEFAULT NULL,
`CREATION_TIME` bigint NOT NULL DEFAULT '0',
`FILE_CREATION_TIME` bigint NOT NULL DEFAULT '0',
`OLDEST_KEY_TIME` bigint NOT NULL DEFAULT '0',
`FILTER_POLICY` varchar(193) NOT NULL DEFAULT '',
`COMPRESSION_OPTIONS` varchar(193) NOT NULL DEFAULT ''
`FILTER_POLICY` varchar(193) DEFAULT NULL,
`COMPRESSION_OPTIONS` varchar(193) DEFAULT NULL
) ENGINE=MEMORY DEFAULT CHARSET=utf8mb3
uninstall plugin rocksdb;
select * from information_schema.rocksdb_sst_props;
Expand Down
11 changes: 8 additions & 3 deletions storage/rocksdb/rdb_i_s.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1670,16 +1670,18 @@ static ST_FIELD_INFO rdb_i_s_sst_props_fields_info[] = {
MYSQL_TYPE_LONGLONG, 0),
ROCKSDB_FIELD_INFO("FILTER_BLOCK_SIZE", sizeof(int64_t),
MYSQL_TYPE_LONGLONG, 0),
ROCKSDB_FIELD_INFO("COMPRESSION_ALGO", NAME_LEN + 1, MYSQL_TYPE_STRING, 0),
ROCKSDB_FIELD_INFO("COMPRESSION_ALGO", NAME_LEN + 1, MYSQL_TYPE_STRING,
MY_I_S_MAYBE_NULL),
ROCKSDB_FIELD_INFO("CREATION_TIME", sizeof(int64_t), MYSQL_TYPE_LONGLONG,
0),
ROCKSDB_FIELD_INFO("FILE_CREATION_TIME", sizeof(int64_t),
MYSQL_TYPE_LONGLONG, 0),
ROCKSDB_FIELD_INFO("OLDEST_KEY_TIME", sizeof(int64_t), MYSQL_TYPE_LONGLONG,
0),
ROCKSDB_FIELD_INFO("FILTER_POLICY", NAME_LEN + 1, MYSQL_TYPE_STRING, 0),
ROCKSDB_FIELD_INFO("FILTER_POLICY", NAME_LEN + 1, MYSQL_TYPE_STRING,
MY_I_S_MAYBE_NULL),
ROCKSDB_FIELD_INFO("COMPRESSION_OPTIONS", NAME_LEN + 1, MYSQL_TYPE_STRING,
0),
MY_I_S_MAYBE_NULL),
ROCKSDB_FIELD_INFO_END};

static int rdb_i_s_sst_props_fill_table(
Expand Down Expand Up @@ -1756,6 +1758,7 @@ static int rdb_i_s_sst_props_fill_table(
if (props.second->compression_name.empty()) {
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_null();
} else {
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_notnull();
field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->store(
props.second->compression_name.c_str(),
props.second->compression_name.size(), system_charset_info);
Expand All @@ -1769,13 +1772,15 @@ static int rdb_i_s_sst_props_fill_table(
if (props.second->filter_policy_name.empty()) {
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_null();
} else {
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_notnull();
field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->store(
props.second->filter_policy_name.c_str(),
props.second->filter_policy_name.size(), system_charset_info);
}
if (props.second->compression_options.empty()) {
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_null();
} else {
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_notnull();
field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->store(
props.second->compression_options.c_str(),
props.second->compression_options.size(), system_charset_info);
Expand Down

0 comments on commit 708360c

Please sign in to comment.