文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之二

在exec_simple_query中,代码如下: 1 /* 2 * exec_simple_query 3 * 4 * Execute a "simple Query" protocol message. 5 */ 6 static void 7 exec_simple_query(const char *query_string) 8 { 9 ...

文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之三

前面已经说过,在 exec_simple_query中,完成sql文的执行。 具体地说,是要构造portal,然后运行 PortalStart , PortalRun... 下面就先看看 portal如何构造: 在 exec_simple_query中,有这么一段: 1 /* 2 * Create unnamed portal to run the quer...

文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之四

看看portal生成完毕后,干了什么(PortalDefineQuery): 1 /* 2 * Create unnamed portal to run the query or queries in. If there 3 * already is one, silently drop it. 4 */ 5 ...

文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之五

在定义了Portal之后,需要运行:PortalStart,它主要的任务是明确执行策略,然后再执行 ExecutorStart: 代码太长,进行缩略: void PortalStart(Portal portal, ParamListInfo params, int eflags, bool use_active_snapshot) { ... PG_...

文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之六

前面说过 PortalStart明确执行策略后,要执行 ExecutorStart。 那么ExecutorStart 到底作了什么呢。以下是缩略: /* ---------------------------------------------------------------- * ExecutorStart * * This routine must ...

文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之七

前面已经说过,exec_simple_query要运行 PortalStart和 PortalRun。 可以说,PortalRun是重头戏,sql的真正执行,就在这里完成。 /* * PortalRun * Run a portal's query or queries. * * count <= 0 is interpreted as a no-op: the ...

文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之九

调用关系:PortalRun -> PortalRunSelect -> ExecutorRun ExecutorRun,实际上会去运行 standard_ExecutorRun ->ExecutePlan: /* ---------------------------------------------------------------- * Execu...

文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之八

在PortalRun里要调用 PortalRunSelect,具体的过程缩略如下: /* * PortalRunSelect * Execute a portal's query in PORTAL_ONE_SELECT mode, and also * when fetching from a completed holdStore in PORTAL_O...

文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之十

回到 exec_simple_query函数上来。 /* * exec_simple_query * * Execute a "simple Query" protocol message. */ static void exec_simple_query(const char *query_string) { ... start_xact_command(); ...

文章 2022-02-16 来自:开发者社区

PostgreSQL在何处处理 sql查询之十一

接前面,继续进行分析: 前面已经说过,在planner函数运行时,发生了实际物理磁盘访问。 /***************************************************************************** * * Query optimizer entry point * * To support loadable plugin...

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

产品推荐

相关镜像