软件下载吧文章资讯

分类分类

Postgres中UPDATE更新语句源码分析

2024-02-03 17:42作者:下载吧

PG中UPDATE源码分析

本文主要描述SQL中UPDATE语句的源码分析,代码为PG13.3版本。

整体流程分析

update dtea set id = 1;这条最简单的Update语句进行源码分析(dtea不是分区表,不考虑并行等,没有建立任何索引),帮助我们理解update的大致流程。

SQL流程如下:

对应的代码:

exec_simple_query(const char *query_string)
// ——- 解析器部分————–
–> pg_parse_query(query_string);    //生成语法解析树
–> pg_analyze_and_rewrite(parsetree, query_string,NULL, 0, NULL);   // 生成查询树Query
    –> parse_analyze(parsetree, query_string, paramTypes, numParams,queryEnv); // 语义分析
    –> pg_rewrite_query(query);    // 规则重写

// ——–优化器———-
–> pg_plan_queries()

//——– 执行器———-
–> PortalStart(portal, NULL, 0, InvalidSnapshot);
–> PortalRun(portal,FETCH_ALL,true,true,receiver,receiver,&qc);    // 执行器执行
–> PortalDrop(portal, false);

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消