Skip to content

Commit 5d1dd13

Browse files
committed
PS-10287 [8.0]: Detect table definition mismatch between MyRocks and data dictionary
1 parent 7f77fd5 commit 5d1dd13

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

storage/rocksdb/ha_rocksdb.cc

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8066,6 +8066,42 @@ int ha_rocksdb::open(const char *const name, int mode, uint test_if_locked,
80668066
*/
80678067
key_used_on_scan = table->s->primary_key;
80688068

8069+
uint n_keys = table->s->keys + (has_hidden_pk(*table) ? 1 : 0);
8070+
8071+
if (m_tbl_def->m_key_count != n_keys) {
8072+
LogPluginErrMsg(ERROR_LEVEL, 0,
8073+
"Table '%s' definition mismatch between MyRocks "
8074+
"(m_key_count=%d) and data dictionary (n_keys=%d)",
8075+
m_tbl_def->full_tablename().c_str(), m_tbl_def->m_key_count,
8076+
n_keys);
8077+
8078+
for (uint i = 0; i < table->s->keys; i++) {
8079+
const char *key_name;
8080+
assert((*table).key_info != nullptr);
8081+
assert((*table).key_info[i].name != nullptr);
8082+
key_name = (*table).key_info[i].name;
8083+
8084+
LogPluginErrMsg(
8085+
ERROR_LEVEL, 0,
8086+
"ha_rocksdb::open TABLE table_name=%s i=%d/%d key_name=%s",
8087+
table->s->table_name.str, i, table->s->keys, key_name);
8088+
}
8089+
8090+
uint pk = table->s->primary_key;
8091+
LogPluginErrMsg(
8092+
ERROR_LEVEL, 0, "ha_rocksdb::open TABLE PK key_name=%s",
8093+
pk == MAX_INDEXES ? HIDDEN_PK_NAME : (*table).key_info[pk].name);
8094+
8095+
for (uint i = 0; i < m_tbl_def->m_key_count; i++) {
8096+
const char *rdb_name = m_tbl_def->m_key_descr_arr[i]->m_name.c_str();
8097+
LogPluginErrMsg(
8098+
ERROR_LEVEL, 0,
8099+
"ha_rocksdb::open KEY_descr_arr table_name=%s i=%d/%d key_name=%s",
8100+
m_tbl_def->full_tablename().c_str(), i, m_tbl_def->m_key_count,
8101+
rdb_name);
8102+
}
8103+
}
8104+
80698105
// close() above has already called free_key_buffers(). No need to do it here.
80708106
err = alloc_key_buffers(*table, *m_tbl_def);
80718107

0 commit comments

Comments
 (0)