美文网首页
openGauss源码#table_manager

openGauss源码#table_manager

作者: upup果 | 来源:发表于2021-01-09 09:21 被阅读0次

    table_manager.h和table_manager.cpp是管理所有与内存优化表生命周期相关的api的实现。它使用三个map,来维护管理table,

    /** 内部的 table map */
    typedef std::map<uint32_t, Table*> InternalTableMap;
    
    /** 外部的 table map */
    typedef std::map<uint64_t, Table*> ExternalTableMap;
    
    /** 基于名字的 table map */
    typedef std::map<std::string, Table*> NameTableMap;
    

    函数也主要是针对这三个表的操作:
    1.AddTable:为三个map添加新的table
    2.DropTable(Table* table, SessionContext* sessionContext):从InternalTableMap删除一个表
    3.GetTable(InternalTableId tableId):从InternalTableMap获取一个表
    4.GetTableByExternal(ExternalTableId tableId):根据表的外部标识符检索表。
    5.GetTable(const std::string& name):根据表名检索表。
    6.AddTableIdsToList(std::list<uint32_t>& idQueue):将InternalTableMap的表复制到idQueue中.
    7.DropTableInternal(Table* table, SessionContext* sessionContext):在三个map中,都删除这个表,并且在Txn中也移除表的相关信息

    相关文章

      网友评论

          本文标题:openGauss源码#table_manager

          本文链接:https://www.haomeiwen.com/subject/zvvmoktx.html