当前位置: 首页 > news >正文

openGauss 插件开发入门

openGauss 插件开发入门

一、插件的开发与安装

插件名为timeflux。首先创建目录timeflux:

cd openGauss-server/contrib/
mkdir timeflux
cd timeflux/

最基本的demo包括四个核心文件:timeflux.cpptimeflux--1.0.sqltimeflux.controlMakefile。在目录timeflux下创建上述四个文件,分别写入如下内容:

  • timeflux.cpp
    demo的核心,对函数的功能进行实现。该demo的功能是实现函数timeflux_verify(),输出字符串信息以验证插件被成功加载。
#include "postgres.h"
#include "fmgr.h"
#include "utils/builtins.h"
#include "utils/elog.h"PG_MODULE_MAGIC;extern "C" Datum timeflux_verify(PG_FUNCTION_ARGS);PG_FUNCTION_INFO_V1(timeflux_verify);Datum timeflux_verify(PG_FUNCTION_ARGS) {PG_RETURN_TEXT_P(cstring_to_text("[TimeFlux-Simple] SUCCESS! Plugin code is fully active and callable."));
}void _PG_init(void) {elog(NOTICE, "timeflux plugin loaded!");
}void _PG_fini(void) {elog(NOTICE, "timeflux plugin unloaded!");
}
  • timeflux--1.0.sql
    用于创建SQL函数timeflux_verify(),与文件timeflux.cpp中的函数进行联动,用于在数据库客户端调用。
CREATE OR REPLACE FUNCTION timeflux_verify()
RETURNS text
AS 'MODULE_PATHNAME', 'timeflux_verify'
LANGUAGE C STRICT IMMUTABLE;
  • timeflux.control
    demo的一些配置信息。
# timeflux extension
comment = 'TimeFlux+: Advanced Time-Series Storage Engine'
default_version = '1.0'
module_pathname = '$libdir/timeflux'
relocatable = true
  • Makefile
    用于构建demo
MODULES = timeflux
EXTENSION = timeflux
DATA = timeflux--1.0.sql
REGRESS = timeflux# 使用PostgreSQL/OpenGauss的构建基础设施
ifdef USE_PGXS
PG_CONFIG = pg_config
PGXS := $(shell $(PG_CONFIG) --pgxs)
include $(PGXS)
else
top_builddir = ../..
include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif

编写好上述文件后,执行编译安装:

make
make install

确保数据库服务已启动,连接数据库:

gsql -d postgres -p 5432 -r

创建插件并调用函数,出现下图输出即表示成功创建并安装插件:

CREATE EXTENSION timeflux;SELECT timeflux_verify();

成功创建并安装插件的输出结果

二、插件的卸载

首先在数据库中执行如下操作:

-- 1. 首先,删除插件在 pg_depend 中的依赖记录(关键步骤)
DELETE FROM pg_depend WHERE refobjid = (SELECT oid FROM pg_extension WHERE extname = 'timeflux');
-- 2. 然后,删除插件在 pg_extension 中的主记录
DELETE FROM pg_extension WHERE extname = 'timeflux';-- 3. 验证是否删除成功。如果查询返回0行,说明清理成功。
SELECT * FROM pg_extension WHERE extname = 'timeflux';

接着退出数据库,在主机中执行如下操作:

cd openGauss-server/mppdb_temp_install/lib/postgresql/
rm -rf timeflux.so
http://www.jsqmd.com/news/313017/

相关文章:

  • 【5分钟背八股】击穿、穿透、雪崩、预热解决方案?
  • 海口英语雅思培训机构推荐?2026权威测评出国雅思辅导机构口碑榜单
  • 海口英语雅思培训机构推荐,2026权威测评出国雅思辅导机构口碑榜单
  • 2026年比较好的陕西仿古铜瓦行业内知名厂家排行榜
  • 海口英语雅思培训机构推荐:2026权威测评出国雅思辅导机构口碑榜单
  • 探讨2026年地锅炖加盟口碑好的项目,加盟费用多少钱
  • 从epoll机制看MessageQueue
  • 海口英语雅思培训机构推荐;2026权威测评出国雅思辅导机构口碑榜单
  • 2026年高品质铝质氧化生产商排名,费用怎么收
  • 2026年三亚纹理独特的进口岩板品牌选购指南,哪家好
  • 口碑好的苏州谷歌独立站供应商哪个好
  • 2026年服装表演艺考培训口碑排行,艺升艺考表现亮眼
  • 海口英语雅思培训机构推荐|2026权威测评出国雅思辅导机构口碑榜单
  • 2026年青图沐羽产品种类丰富度排行,宁德全屋定制哪家好
  • 下载速度60M/s,直接跑满带宽!最新NDM中文绿色汉化版,内附详细安装使用教程,平替IDM下载器
  • 堪称是真正的“Markdown笔记之王”?!支持跨平台使用,本地离线访问使用、多格式导出,且免费用 维克日记
  • 专业Windows键鼠自动化工具,免费永久使用,告别重复操作,小白也能快速创建自动化脚本 点点精灵
  • UE5 C++(61)json 文件解析
  • 吐血推荐8个一键生成论文工具,本科生轻松搞定毕业论文!
  • 别再熬大夜写课程论文了!虎贲等考 AI 一键解锁 “高分模板”,还不踩学术红线
  • 绘图不再掉头发!虎贲等考 AI 科研绘图黑科技:10 分钟出顶刊级图表,新手也能封神
  • 传统问卷 VS 智能设计!虎贲等考 AI:让实证数据从 “无效” 变 “硬核” 的科研神器
  • 怕代码、愁建模?虎贲等考 AI 让科研数据分析 “零门槛”,小白也能出顶刊级结果
  • ITIL 4 时代,企业如何构建ITSM落地新逻辑?
  • 2026年蚌埠/滁州/亳州回收报废车厂家首选推荐:蚌埠利袁再生资源有限公司
  • 唐山英语雅思培训机构推荐、2026权威测评出国雅思辅导机构口碑榜
  • 唐山英语雅思培训机构推荐.2026权威测评出国雅思辅导机构口碑榜
  • DELL R610服务器系统从Windows Server 2008 R2升级到Windows Server 2016全过程
  • K3S 安装 - 详细操作指南
  • 唐山英语雅思培训机构推荐。2026权威测评出国雅思辅导机构口碑榜