Table类包含管理数据库中内存表所需的所有项。表由以下组件组成:列、主索引和可选的二级索引。关键成员变量说明如表4-36 Table-36 Table类的关键成员变量所示。
表4-36 Table类的关键成员变量
| 成员变量 | 描述 |
| tableCounter : std::atomic<uint32_t> | 原子表ID |
| m_tupleSize : uint32_t | 原始元组大小(以字节为单位) |
| m_tableExId : uint64_t | openGauss提供的外部表ID |
| m_secondaryIndexes : SecondaryIndexMap | 按名称访问的二级索引映射 |
| m_rwLock : pthread_rwlock_t | RW Lock,防止在检查点/真空期间删除 |
| m_rowPool : ObjAllocInterface* | row_pool行分配器对象池 |
| m_primaryIndex : MOT::Index* | 主索引 |
| m_numIndexes : uint16_t | 正在使用的耳机索引数 |
| m_indexes : MOT::Index** | 索引数组 |
| m_fixedLengthRows : bool | 指定行是否具有固定长度 |
| m_fieldCnt : uint32_t | 表schema中的字段个数 |
| m_columns : Column** | 列数组 |
Row类包含管理表中的内存行所需的所有项,关键成员变量如表4-37所示。
表4-37 Row类的关键成员变量
| 成员变量 | 描述 |
| m_data : uint8_t | 保存行数据的原始缓冲区,开始于类的结束位置 |
| m_keyType : KeyType | 使用的键类型。
|
| m_pSentinel : Sentinel* | 指向主哨兵的指针 |
| m_rowHeader : RowHeader | OCC行的头部,包含OCC操作的所有相关信息 |
| m_rowId : uint64_t | 创建行时生成的唯一rowId |
| m_table : Table* | 指向内存管理表的指针 |
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




