转自
在做pgpool的时候选择了一个相对较老的版本3.2.9在pg9.4上做实验出现以下错误
[postgres@barman pgpool-walrecrunning]$ make
gcc -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -O2 -fpic -I. -I./ -I/home/highgo/hgdb/include/postgresql/server -I/home/highgo/hgdb/include/postgresql/internal -D_GNU_SOURCE -I/usr/include/libxml2 -c -o pgpool-walrecrunning.o pgpool-walrecrunning.c
pgpool-walrecrunning.c: In function ‘pgpool_walrecrunning’:
pgpool-walrecrunning.c:49: error: ‘WALRCV_RUNNING’ undeclared (first use in this function)
pgpool-walrecrunning.c:49: error: (Each undeclared identifier is reported only once
pgpool-walrecrunning.c:49: error: for each function it appears in.)
make: *** [pgpool-walrecrunning.o] Error 1
显示函数的问题,后经测试,在9.2上可以执行,没有出现错误,9.4以上的版本就不行(9.3没测试过,有兴趣自己来试试),原因是在pg本来是有这个函数的,在pg内部升级的过程中,把这个函数去掉了,结果出现了这个错误, 而且在高版本的pgpool中已经将pgpool_walrecrunning这个东西去掉了,如果出现了这个错误,你可以去下载高版本的pgpool或者直接忽略掉就可以了,不去编译这个函数。