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

PostgreSQL hook & callback

digoal 2021-01-07
1394

作者

digoal

日期

2021-07-08

标签

PostgreSQL , hook , callback


背景

钩子和callback, 方便用户增强PG内核能力.

例如:

SQL限流、分布式DDL、AWR、密码安全策略、PLAN hint、GPU加速等.

hook

Available hooks

General hooks

emit_log_hook
shmem_startup_hook

Security hooks

check_password_hook
ClientAuthentication_hook
ExecutorCheckPerms_hook
object_access_hook
openssl_tls_init_hook
row_security_policy_hook_permissive
row_security_policy_hook_restrictive

Function manager hooks

needs_fmgr_hook
fmgr_hook

Planner hooks

explain_get_index_name_hook
ExplainOneQuery_hook
get_attavgwidth_hook
get_index_stats_hook
get_relation_info_hook
get_relation_stats_hook
planner_hook
join_search_hook
set_rel_pathlist_hook
set_join_pathlist_hook
create_upper_paths_hook
post_parse_analyze_hook

Executor hooks

ExecutorStart_hook
ExecutorRun_hook
ExecutorFinish_hook
ExecutorEnd_hook
ProcessUtility_hook

PL/pgSQL hooks

func_setup
func_beg
func_end
stmt_beg
stmt_end

callback

What is a callback?
- Very similar to the hooks.
- But initially designed to be set by multiple users.
- Usually installed by Register*Callback() setter functions:
- RegisterXactCallback(), RegisterSubXactCallback(),
- RegisterExprContextCallback(), etc.
- Yet, there are others like: before_shmem_exit(), on_shmem_exit().
- Mostly for internal usage.

参考

fosdem21_postgres_extensibility

Hooks_in_postgresql

https://pgpedia.info/h/hooks.html

https://github.com/AmatanHead/psql-hooks

https://www.pgcon.org/2012/schedule/events/466.en.html

https://wiki.postgresql.org/images/e/e3/Hooks_in_postgresql.pdf

https://fosdem.org/2021/schedule/event/postgresql_extensibility/attachments/slides/4348/export/events/attachments/postgresql_extensibility/slides/4348/fosdem21_postgres_extensibility.pdf

PostgreSQL 许愿链接

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

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

PostgreSQL 解决方案集合

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

digoal's wechat

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

评论