Hubert 'depesz' Lubaczewski:等待 PostgreSQL 19 – 新增 pg_get_*_ddl() 函数

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

内容提要

新增pg_get_tablespace_ddl()函数,用于返回重建表空间所需的DDL语句。支持表空间名称或OID及可选参数,输出格式化并包含所有者信息。返回多行,第一行为创建表空间语句,后续为修改属性语句。调用者需具备pg_tablespace的SELECT权限。

🎯

关键要点

  • 新增pg_get_tablespace_ddl()函数,用于返回重建表空间所需的DDL语句。

  • 支持表空间名称或OID及可选的VARIADIC文本参数,参数为交替的名称/值对。

  • 支持的选项包括:pretty(布尔值)用于格式化输出,owner(布尔值)用于包含所有者信息。

  • 返回结果为一行或多行,第一行为创建表空间语句,后续为修改属性的ALTER TABLESPACE语句。

  • 调用者需具备pg_tablespace的SELECT权限。

  • get_reloptions()函数在ruleutils.c中被设为非静态,以便可以从新的ddlutils.c文件中调用。

延伸问答

pg_get_tablespace_ddl()函数的主要功能是什么?

pg_get_tablespace_ddl()函数用于返回重建表空间所需的DDL语句。

调用pg_get_tablespace_ddl()函数需要什么权限?

调用者需具备pg_tablespace的SELECT权限。

pg_get_tablespace_ddl()函数支持哪些参数?

该函数支持表空间名称或OID及可选的VARIADIC文本参数,包括pretty和owner选项。

pg_get_tablespace_ddl()函数的返回结果是什么样的?

返回结果为一行或多行,第一行为创建表空间语句,后续为修改属性的ALTER TABLESPACE语句。

使用pg_get_tablespace_ddl()函数时,如何格式化输出?

可以通过设置pretty参数为布尔值来格式化输出。

pg_get_tablespace_ddl()函数的实现中有哪些重要的代码变更?

get_reloptions()函数在ruleutils.c中被设为非静态,以便可以从新的ddlutils.c文件中调用。

➡️

继续阅读