c函数 postgres_PostgreSQL插件开发——C函数

这篇博客介绍了如何在PostgreSQL中开发C函数插件,用于实现16进制转换。通过创建控制文件、Makefile、SQL文件和C源代码,详细展示了创建、编译和测试插件的过程。最后,验证了C函数的正确性和可用性。
摘要由CSDN通过智能技术生成

在之前的例子中,我们使用sql函数来实现了一个简单的插件开发,但是在实际应用中,我们开发插件基本都是使用C函数,其效率要远远高得多。

下面我们使用C函数来创建一个简单的插件,用来实现16进制的转换。

例子:

1、创建控制文件

在contrib目录下一个base16_encode文件夹,在该文件夹下面创建base16.control文件,内容如下:

# base16 extension

comment = 'base16 datatype auth by bill'

default_version = '0.0.1'

relocatable = true

2、创建Makefile文件

其中MODULES参数指是我们要创建的c函数文件。https://www.cndba.cn/foucus/article/3934

EXTENSION = base16 # the extensions name

DATA = base16--0.0.1.sql # script files to install

REGRESS = base16_test # our test script file (without extension)

MODULES = base16 # our c module file to build

# postgres build stuff

PG_CONFIG = pg_config

PGXS := $(shell $(PG_CONFIG) --pgxs)

include $(PGXS)

3、创建sql文件

因为我们的功能C函数中实现,所以这里创建language是C的函数。

-- complain if script is sourced in psql, rather than via CREATE EXTENSION

/echo Use "CREATE EXTENSION base16" to load this file. /quit

CREATE FUNCTION base16_encode(integer) RETURNS text

AS '$libdir/base16'

LANGUAGE C IMMUTABLE STRICT;

4、创建C函数

接着我们要创建C函数来实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值