CREATE TABLE ... WITH storage_parameter [= value] [, ... ]
创建表时,可以通过WITH子句指定storage_parameter,这个存储参数指什么?在代码中如何实现?
1、storage_parameter参数说明参考:https://www.postgresql.org/docs/current/sql-createtable.html#SQL-CREATETABLE-STORAGE-PARAMETERS
2、代码中如何实现?
在Relation结构体的rd_options成员变量指定,以fillfactor为例,在插入时,如何判断该页的填充量:
heap_insert->
buffer = RelationGetBufferForTuple(relation, heaptup->t_len,
| InvalidBuffer, options, bistate,&vmbuffer, NULL);
|-- saveFreeSpace = RelationGetTargetPageFreeSpace(relation,
| HEAP_DEFAULT_FILLFACTOR);
RelationPutHeapTuple(relation, buffer, heaptup,(options & HEAP_INSERT_SPECULATIVE) != 0);
插入时,heap_insert调用RelationGetBufferForTuple对记录进行插入,而调用RelationGetTargetPageFreeSpace根据指定的填充度判断这个页预留空间多少。
#define RelationGetTargetPage
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
