在哪里可以找到所有PostgreSQL关键字/令牌的词汇定义,例如GROUP_P?
答案 0 :(得分:2)
GROUP_P
不是关键字,它是C编译器上下文中的符号,并且在C源代码之外没有词汇意义。
来自parser/kwlist.h
的声明:
PG_KEYWORD("group", GROUP_P, RESERVED_KEYWORD)
它是第一个参数“group”,它是关键字,第二个参数GROUP_P通常是枚举字段或#define(它取决于包装器)。
头文件src/include/parser/keywords.h
提供了一个结构类型ScanKeyword
,可以按字段直接映射到PG_KEYWORD宏:
typedef struct ScanKeyword
{
const char *name; /* in lower case */
int16 value; /* grammar's token code */
int16 category; /* see codes above */
} ScanKeyword;
有关使用的具体示例,请参阅ECPG如何在src/interfaces/ecpg/preproc/keywords.c