1. RELSEG_SIZE、BLCKSZ等变量值
在讲解SMGR实现原理时,在md.c源文件中,经常会看到 BLCKSZ、RELSEG_SIZE等变量的出现,但是整个PG内核源码中又搜索不到此变量的定义处。如下:
那么有两个疑问:
- 为何源码中搜索不到此类变量的声明?
- 它们的值又是多少?
如果不知道这两个变量的值,此处的源码阅读会带来一些困惑。因为我们不清楚这些运算转换的具体含义是什么。如果我们清楚地知道RELSEG_SIZE、BLCKSZ的值,以及其所代表意义,那么此函数体中的这段代码含义将十分清晰、通俗易懂。
因此,本文将重点讲解如何去查找PG内核中类似的大量变量的具体值是多少?
比如:
- PG_VERSION_STR
下面函数打印PG数据库的版本号。
- MAXIMUM_ALIGNOF
定义为任何C数据类型的最大对齐要求。