开发者社区 问答 正文

当初次获取一个表的元信息时,会调用 Storage_adapter::get() 接口,处理过程是什

当初次获取一个表的元信息时,会调用 Storage_adapter::get() 接口,处理过程是什么样的?

展开
收起
我也不知道取啥名字 2022-05-08 12:11:03 376 分享
分享
版权
来自: 阿里技术 举报
1 条回答
写回答
取消 提交回答
  • 处理过程是:Storage_adapter::get() // 根据访问对象类型,将依赖的 DD tables 加入到 open table list 中 |--Open_dictionary_tables_ctx::register_tables< T>() |--Table_impl::register_tables() |--Open_dictionary_tables_ctx::open_tables() // 调用 Server 层接口打开所有表 |--Raw_table::find_record() // 直接调用 handler 接口根据传入的 key(比如表名)查找记录 |--handler::ha_index_read_idx_map() // index read // 从读取到的 record 中解析出对应属性,调用 field[field_no]->val_xx() 函数 |--Table_impl::restore_attributes() // 通过调用 restore_children() 函数从与该对象关联的其他 DD 表中根据主外键读取完整的元数据定义 |--Table_impl::restore_children() |--返回完整的 DD cache 对象

    2022-05-08 14:22:15 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址: