- 博客(7)
- 收藏
- 关注
原创 PostgreSQL角色与权限体系
PostgreSQL 中所有对象都有一个所有者(owner),通常为创建该对象的用户。对于大多数对象,只允许超级用户(superuser)或者所有者(owner)可以对对象执行操作,其它用户需要授予一定的权限(privileges)。只有超级用户或者当当前用户既是对象的 owner,又拥有 SET ROLE 到 new_owner 的权限的时候,才运行进行修改 OWNER 的操作。
2025-03-26 22:43:06
635
原创 PostgreSQL SPI接口
SPI,可以在 C 函数中调用 SPI 接口来方便的运行 SQL。SPI 是一组接口函数,可以访问parserplannerexecutor,此外 SPI 还有自己的内存管理。如果通过 SPI 调用的 SQL 失败,控制权不会返回给调用点,执行 C 函数的事物或者子事物将被回滚。SPI 的头文件在中,如果 SPI 函数调用成功,将返回一个 非负整数,否则返回负数或者 NULL。PG 中大多数过程语言底层都使用 SPI 进行开发。
2024-10-26 23:10:29
845
原创 PostgreSQL错误处理
大于等于 ERROR 级别的错误将不会返回到调用者处,会走 PG 的 TRY CATCH 逻辑,后续会讲到。在错误处理期间,还可能会产生新的错误,错误处理可能会嵌套,为了能够处理这种情况,PG 在栈上预分配了 5 个。当你的代码可能会通过抛出 ERROR 级别的错误时,如果你想对其进行捕获处理,就需要用。这些函数是不会出现这种 NULL 的情况的),就会直接发出一个 FATAL 的错误。保存上一层的错误捕获点,最上层的错误捕获点在进程启动时设置,的 else 逻辑,这就完成了错误的捕获。
2024-10-26 23:08:44
1136
原创 CLion配置远程开发
这种远程开发的模式下,本地会运行一个CLion实例,源代码会存储在本地机器,通过SSH与远程机器进行连接,CLion会使用rsync自动将本地的源代码同步到远程机器。CLion会使用远程机器的工具链(GDBCMake/make…)将你的源代码编译,运行。
2023-10-19 22:30:16
3384
原创 NVMe笔记
1 相关概念1.1 Controller控制器Controller是NVM子系统和主机host之间通信的接口,有三种类型的Controller:I/O controllerdiscovery controlleradministrative controllerController和主机host之间通过队列对来通信。Controller执行主机host下发到Submission Queue中的命令,执行完毕后将命令的执行结果放到Completion Queue中。所有的三种类型Control
2022-05-14 17:53:54
4032
1
原创 NVMeOF笔记
1. 基本概念1.1 CapsuleNVMeoF使用 Capsule 来进行数据传输,有两种 Capsule ,1) command capsule,2)response capsule。command capsule包含一个SQE(它是对NVMe over PCIe中SQE的修改和扩展)和一个可选的数据或SGL部分。command capsule由主机下发给NVM SubSystem,最少要包含一个SQE,也就是64Byte。SQE中包含主机下发给NVM SubSystem的命令,NVMeoF中有
2022-05-14 17:51:48
4139
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人