暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

PostgreSQL hook 钩子介绍 - 过滤器、空壳、无中生有

digoal 2019-12-10
526

作者

digoal

日期

2019-12-10

标签

PostgreSQL , hook


背景

很多人家里会加自来水的前置过滤器,在要加过滤器的地方切段水管,把过滤器装上后水通过过滤器再往下流。

hook 在PostgreSQL中也可以看作是一种内置的过滤器,但它是个空壳,过滤器里什么都没有,你可以实现这个hook,也就是往过滤器里加东西。

例如这个hook,当ExecutorFinish_hook什么都没有时,就是个空壳,你可以在外面实现这个空壳,让他变成有东西,那么hook的代码就会被执行。起到“过滤器”效果。

void ExecutorFinish(QueryDesc *queryDesc) { if (ExecutorFinish_hook) // 如果定义了这个HOOK,那么跳转到如下执行。 (*ExecutorFinish_hook) (queryDesc); else standard_ExecutorFinish(queryDesc); }

《PostgreSQL 数据库资源限制 + HOOK(limit guc) - 降低攻击伤害、自动SQL优化等》

《PostgreSQL HooK 介绍》

《PostgreSQL 回收站功能 - 基于HOOK的recycle bin pgtrashcan》

https://www.dalibo.org/_media/hooks_in_postgresql2.pdf

Hooks in PostgreSQL

PostgreSQL 许愿链接

您的愿望将传达给PG kernel hacker、数据库厂商等, 帮助提高数据库产品质量和功能, 说不定下一个PG版本就有您提出的功能点. 针对非常好的提议,奖励限量版PG文化衫、纪念品、贴纸、PG热门书籍等,奖品丰富,快来许愿。开不开森.

9.9元购买3个月阿里云RDS PostgreSQL实例

PostgreSQL 解决方案集合

德哥 / digoal's github - 公益是一辈子的事.

digoal's wechat

文章转载自digoal,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论