PostgreSQL create extenstion 创建扩展逻辑分析

PostgreSQL 支持 create extenstion 语法创建扩展,扩展能够很方便地将第三方开发的插件集成到 PostgreSQL 数据库中,比如时序数据库 timescaledb 就是作为 PG 的一个扩展集成到数据库系统中,让 PG 能够支持更加强大的时序数据的存储与查询能力。

使用 psql 连接到 pg server,执行创建扩展的语句,如下:

CREATE EXTENSION timescaledb;

上述创建扩展的语句,在 PG 源码中的函数调用关系如下:

PostgresMain() ->exec_simple_query() ->PortalRun() ->PortalRunMulti() ->PortalRunUtility() ->ProcessUtility() ->loader_process_utility_hook() 位于 timescaledb ->standard_ProcessUtility() ->ProcessUtilitySlow() ->CreateExtension() ->CreateExtensionInternal()