0、环境
centos8
postgresql12.4
gcc 已经安装

1、安装开发库
centos、redhad

dnf install postgresql12-devel

ubuntu

apt install postgresql-server-dev-12

2、环境
确保 pg_config 配置 path 路径下

pg_config --pgxs

3、创建文件
在 /opt/pj/addme 下创建三个文件 
 addme.c  addme.control  Makefile

3.1、Makefile

MODULES = addme
EXTENSION = addme
DATA = addme--0.0.1.sql
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)


3.2、addme.c

#include "postgres.h"
#include "fmgr.h"
PG_MODULE_MAGIC;
PG_FUNCTION_INFO_V1(addme);

Datum
addme(PG_FUNCTION_ARGS)
{
int32 arg1 = PG_GETARG_INT32(0);
int32 arg2 = PG_GETARG_INT32(1);

PG_RETURN_INT32(arg1 + arg2);
}


3.3、addme.control

comment = 'Simple number add function'
default_version = '0.0.1'
relocatable = true
module_pathname = '$libdir/addme'

4、编译
make

5、创建函数

CREATE OR REPLACE FUNCTION addme(int,int)  RETURNS int  AS '/opt/pj/addme/addme.so', 'addme'  LANGUAGE C STRICT;

6、执行函数

select addme(1,2)


 

最后修改于 2020-09-18 16:07:45
如果觉得我的文章对你有用,请随意赞赏
扫一扫支付
上一篇