学习PG写入数据,从PageAddItemExtended开始
参考文章:https://www.jianshu.com/p/e86989dbda92
源码位置:bufpage.c:190
OffsetNumber
PageAddItemExtended(Page page,
Item item,
Size size,
OffsetNumber offsetNumber,
int flags)
Page结构
Page 大小为8192 bytes
item从前往后写, tuple从后往前写, lower和upper相遇,那这个页就写完了。
item描述tuple的位置和长度。
每次插入新item ,最多是从lower下一个字节开始,或者使用已有空闲的item。详细流程路如下。
函数流程图
画个图加深理解,继续学习PG写入数据相关源码。