From 2da150233310eeb3801dd2d5a8a18759eef7a1d6 Mon Sep 17 00:00:00 2001 From: leipeng Date: Thu, 26 Jan 2023 17:54:01 +0800 Subject: [PATCH 1/3] rdb_i_s_sst_props_fill_table: store string `NULL` before set_null --- storage/rocksdb/rdb_i_s.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/storage/rocksdb/rdb_i_s.cc b/storage/rocksdb/rdb_i_s.cc index f5f1e8c4ca25..9e8efcd68ba1 100644 --- a/storage/rocksdb/rdb_i_s.cc +++ b/storage/rocksdb/rdb_i_s.cc @@ -1765,6 +1765,7 @@ static int rdb_i_s_sst_props_fill_table( field[RDB_SST_PROPS_FIELD::FILTER_BLOCK_SIZE]->store( props.second->filter_size, true); if (props.second->compression_name.empty()) { + field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->store("NULL", 4, system_charset_info); field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_null(); } else { field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->store( @@ -1778,6 +1779,7 @@ static int rdb_i_s_sst_props_fill_table( field[RDB_SST_PROPS_FIELD::OLDEST_KEY_TIME]->store( props.second->oldest_key_time, true); if (props.second->filter_policy_name.empty()) { + field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->store("NULL", 4, system_charset_info); field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_null(); } else { field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->store( @@ -1785,6 +1787,7 @@ static int rdb_i_s_sst_props_fill_table( props.second->filter_policy_name.size(), system_charset_info); } if (props.second->compression_options.empty()) { + field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->store("NULL", 4, system_charset_info); field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_null(); } else { field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->store( From 5e2391437c6e3962573d16eec620c62f9d506dfe Mon Sep 17 00:00:00 2001 From: leipeng Date: Sun, 29 Jan 2023 15:14:09 +0800 Subject: [PATCH 2/3] rdb_i_s_sst_props_fields_info: Add missing MY_I_S_MAYBE_NULL --- storage/rocksdb/rdb_i_s.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/storage/rocksdb/rdb_i_s.cc b/storage/rocksdb/rdb_i_s.cc index 9e8efcd68ba1..3ad7913110a9 100644 --- a/storage/rocksdb/rdb_i_s.cc +++ b/storage/rocksdb/rdb_i_s.cc @@ -1689,16 +1689,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( @@ -1765,7 +1767,6 @@ static int rdb_i_s_sst_props_fill_table( field[RDB_SST_PROPS_FIELD::FILTER_BLOCK_SIZE]->store( props.second->filter_size, true); if (props.second->compression_name.empty()) { - field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->store("NULL", 4, system_charset_info); field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->set_null(); } else { field[RDB_SST_PROPS_FIELD::COMPRESSION_ALGO]->store( @@ -1779,7 +1780,6 @@ static int rdb_i_s_sst_props_fill_table( field[RDB_SST_PROPS_FIELD::OLDEST_KEY_TIME]->store( props.second->oldest_key_time, true); if (props.second->filter_policy_name.empty()) { - field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->store("NULL", 4, system_charset_info); field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->set_null(); } else { field[RDB_SST_PROPS_FIELD::FILTER_POLICY]->store( @@ -1787,7 +1787,6 @@ static int rdb_i_s_sst_props_fill_table( props.second->filter_policy_name.size(), system_charset_info); } if (props.second->compression_options.empty()) { - field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->store("NULL", 4, system_charset_info); field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->set_null(); } else { field[RDB_SST_PROPS_FIELD::COMPRESSION_OPTIONS]->store( From d22d385ab5c40b9ff86f36c373bb81e2c027b6a2 Mon Sep 17 00:00:00 2001 From: leipeng Date: Thu, 4 Aug 2022 17:15:14 +0800 Subject: [PATCH 3/3] rdb_i_s_sst_props_fill_table: Add missing set_notnull --- storage/rocksdb/rdb_i_s.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/storage/rocksdb/rdb_i_s.cc b/storage/rocksdb/rdb_i_s.cc index 3ad7913110a9..275fff3a5d06 100644 --- a/storage/rocksdb/rdb_i_s.cc +++ b/storage/rocksdb/rdb_i_s.cc @@ -1769,6 +1769,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); @@ -1782,6 +1783,7 @@ 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); @@ -1789,6 +1791,7 @@ static int rdb_i_s_sst_props_fill_table( 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);