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中也移除表的相关信息
网友评论