目录
增加guc参数
initdb参数传递
bootstrap模式
参数验证
新增controlfile参数pg_test_parameter,支持从initdb命令传递参数,使用场景是新增某些全局重要信息,如透明加密指定算法;
增加guc参数
增加guc参数的目的是可以查询,pg源码是这样描述guc参数的:它是全局配置管理模式(包括set命令、conf配置文件或其他方式指定参数),我们postgresql.conf文件中所有参数都在这里面,但它是conf文件超集,还有一些配置是不能对用户提供的。
比如postgresql.conf中定义wal段大小的参数:
本次我们新增1个guc参数pg_test_parameter,直接仿照src/utils/misc/guc.c文件中的data_directory参数定义,这个参数指定后也是不允许修改的,并且在initdb和pg_ctl都需要指定,跟我们本次想实现的参数类似,但是两者的GucContext和config_group类型有差异;
定义后就会有pg_test_parameter这个全局参数了,但是定义参数要用起来。
initdb参数传递
支持initdb方式传递pg_test_parameter,需要接受参数输入,这里增加-p的参数读取与参数解析逻辑,在/src/bin/initdb/initdb.c中:
这里完成initdb的参数传递,直接通过initdb -p abc方式将pg_test_parameter参数设置成abc。这里传入后根据需要读取
bootstrap模式
增加bootstarp模式参数传入,待续
参数验证
initdb指定-p参数:
查看参数(调试中):