java ipc pgsql_postgresql源代码的结构

bootstrap - 通过initdb创建最初的数据库模板

几乎PostgreSQL的每一个操作都需要存取系统表,那么如何创建这些系统表呢?不能以通常的方式创建这些系统表并向其中插入数据,因为表的创建和插入要求系统表已经存在。这一部分代码的目的就是使用一种仅仅在bootstrap过程中使用的特殊方法来直接建立系统表

main - 将控制转到postmaster或postgres

检查进程名(argv[0])和各种标志, 然后将控制转到postmaster或postgres

postmaster - 控制postgres服务器启动/终止

创建共享内存,然后进入一个循环等待连接请求。当一个连接请求到达时,启动一个postgres后台服务进程,将连接转给它

libpq - 后台服务器libpq库函数

处理与客户进程间的通讯

tcop - 将请求分派到合适的模块

这是postgres后台服务进程的主要处理部分, 它调用parser, optimizer, executor, 和commands中的函数

parser - 将SQL查询转化为查询树

将来自libpq的SQL查询转换为命令形式的结构供optimizer/executor或commands使用.首先对SQL语句进行词法分析,转换为关键字,标识符和常量,然后进行语法分析。语法分析生成命令形式的结构来表示查询的组成。然后这个命令形式的结构被分离、检查和传送给commands中的处理函数,或者转换为结点链表供optimizer和executor处理

optimizer - 创建查询路径和查询计划

使用parser的输出来为executor生成优化了的查询计划.

optimizer/path - 使用parser的输出创建查询路径

它使用parser

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值