当客户端向PG服务下发一个请求时,postgres进程在读取到用户的请求缓冲区之后,需要对从中解析出用户的具体请求,比如:CREATE TABLE、CREATE DATABASE、DROP TABLE、SELECT等具体操作,这里除了会用到后面即将讲的词法分析解析器flex之外,还会用到一个很重要的模块(tcop
, 完整路径如下:src/include/tcop
),该路径下的头文件定义了PG数据库内核所能够识别到的所有SQL关键词。
相关头/源文件:
PG_CMDTAG
宏决定,该宏在此文件中没有定义;它可以由调用者定义用于特殊目的。【注意,PG_CMDTAG
宏在cmdtag.h
和cmdtag.c
文件中各有一个定义,而功能却大不相同,需特别注意】