大卫·惠勒:Postgres扩展:使用PG_MODULE_MAGIC_EXT

大卫·惠勒:Postgres扩展:使用PG_MODULE_MAGIC_EXT

💡 原文英文,约200词,阅读约需1分钟。
📝

内容提要

PostgreSQL 18引入了新宏PG_MODULE_MAGIC_EXT,用于模块命名和版本管理。需将现有代码中的PG_MODULE_MAGIC替换为PG_MODULE_MAGIC_EXT,并调整模块名称和版本。若需支持早期版本,可使用#ifdef条件编译。建议将.c文件重命名为.c.in,并在Makefile中相应修改。

🎯

关键要点

  • PostgreSQL 18引入了新宏PG_MODULE_MAGIC_EXT,用于模块命名和版本管理。
  • 需将现有代码中的PG_MODULE_MAGIC替换为PG_MODULE_MAGIC_EXT,并调整模块名称和版本。
  • 若需支持早期版本,可使用#ifdef条件编译。
  • 建议将.c文件重命名为.c.in,并在Makefile中相应修改。
  • 在Makefile中,将.version = '1.2.3'替换为.version = '__VERSION__'。
  • 添加src/$(EXTENSION).c到EXTRA_CLEAN。
  • 添加make目标:src/$(EXTENSION).c: src/$(EXTENSION).c.in。
  • 如果使用Git,添加/src/*.c到.gitignore。

延伸问答

PG_MODULE_MAGIC_EXT的作用是什么?

PG_MODULE_MAGIC_EXT用于PostgreSQL模块的命名和版本管理。

如何将现有代码中的PG_MODULE_MAGIC替换为PG_MODULE_MAGIC_EXT?

需要将代码中的PG_MODULE_MAGIC替换为PG_MODULE_MAGIC_EXT,并调整模块名称和版本。

如果需要支持早期版本的PostgreSQL,应该怎么做?

可以使用#ifdef条件编译来支持早期版本的PostgreSQL。

在Makefile中如何管理模块版本?

在Makefile中,将.version = '1.2.3'替换为.version = '__VERSION__'。

如何处理.c文件以适应新的宏?

建议将.c文件重命名为.c.in,并在Makefile中相应修改。

使用Git时,如何管理源代码文件?

在使用Git时,需将/src/*.c添加到.gitignore中。

➡️

继续阅读