
PostgreSQL
文章平均质量分 94
yfhmmm
这个作者很懒,什么都没留下…
展开
-
PostgreSQL角色与权限体系
PostgreSQL 中所有对象都有一个所有者(owner),通常为创建该对象的用户。对于大多数对象,只允许超级用户(superuser)或者所有者(owner)可以对对象执行操作,其它用户需要授予一定的权限(privileges)。只有超级用户或者当当前用户既是对象的 owner,又拥有 SET ROLE 到 new_owner 的权限的时候,才运行进行修改 OWNER 的操作。原创 2025-03-26 22:43:06 · 643 阅读 · 0 评论 -
PostgreSQL SPI接口
SPI,可以在 C 函数中调用 SPI 接口来方便的运行 SQL。SPI 是一组接口函数,可以访问parserplannerexecutor,此外 SPI 还有自己的内存管理。如果通过 SPI 调用的 SQL 失败,控制权不会返回给调用点,执行 C 函数的事物或者子事物将被回滚。SPI 的头文件在中,如果 SPI 函数调用成功,将返回一个 非负整数,否则返回负数或者 NULL。PG 中大多数过程语言底层都使用 SPI 进行开发。原创 2024-10-26 23:10:29 · 847 阅读 · 0 评论 -
PostgreSQL错误处理
大于等于 ERROR 级别的错误将不会返回到调用者处,会走 PG 的 TRY CATCH 逻辑,后续会讲到。在错误处理期间,还可能会产生新的错误,错误处理可能会嵌套,为了能够处理这种情况,PG 在栈上预分配了 5 个。当你的代码可能会通过抛出 ERROR 级别的错误时,如果你想对其进行捕获处理,就需要用。这些函数是不会出现这种 NULL 的情况的),就会直接发出一个 FATAL 的错误。保存上一层的错误捕获点,最上层的错误捕获点在进程启动时设置,的 else 逻辑,这就完成了错误的捕获。原创 2024-10-26 23:08:44 · 1147 阅读 · 0 评论