PostgreSQL extension 參數

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 描述文件

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章