PostgreSQL + GROUP_P的词汇定义

时间:2012-05-26 12:50:32

标签: postgresql

在哪里可以找到所有PostgreSQL关键字/令牌的词汇定义,例如GROUP_P?

1 个答案:

答案 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

中执行此操作