PostgreSQL extension 参数

版权声明:转载可以,请发红包 https://blog.csdn.net/akakakak250/article/details/78418203

PostgreSQL 是一个高可高扩展的数据库,它提供了一种功能就是把相关的SQL 对象集合成一个包,这个包,在PostgreSQL中被称为一个扩展(extension),为了定义这个扩展(extension),你必须至少需要一个可以创建扩展对象SQL脚本文件,以及一个指定扩展属性控制文件,如果你的扩展(extension)中包含了C语言,你可能还需要一个动态库文件。一旦你具有了这些文件,你就可以利用:create extension 创建一个扩展了。

下面我们就简介一下如何定义一个插件
插件可以定义为一个扩展(extension)或者一个可执行程序(program)

MODULE_big = pg_buffercache
OBJS = pg_buffercache_pages.o $(WIN32RES)

EXTENSION = pg_buffercache
PGFILEDESC = "pg_buffercache - monitoring of shared buffer cache in real-time"

ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
else
subdir = contrib/pg_buffercache
top_builddir = ../..
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif

MODULES 代表要创建的动态库列表,不要包含动态库后缀:例如:MODULES = file_fdw 就会成成 file_fdw.so文件。(见:extension/file_fdw)

MODULE_big 根据OBJS 里面的.o 文件生成的动态库。

SHLIB_LINK MODULE_big所需要的依赖库

PROGRAM 根据OBJS 里面的.o文件生成的可执行文件。

PG_LIBS PROGRAM所需要的依赖库

EXTENSION 扩展的名字(必须要有一个与改名字相同的控制文件(control))

REGRESS 回归测试列表(没有后缀)

REGRESS_OPTS 回归测试额外的配置

EXTRA_CLEAN ‘make clean’ 额外要删除的对象,一般为你插件生成的对象

PG_CPPFLAGS 编译参数,该参数为编译程序的时候用相当于CPPFLAGS,如:添加头文件 -I *.h

PGFILEDESC 描述文件

猜你喜欢

转载自blog.csdn.net/akakakak250/article/details/78418203