我需要一个解析器(主要用于“选择”类型的查询)并避免从头开始的麻烦。有谁知道如何使用 pgsql 的 scan.l/gram.y 来实现此目的?我也查过 pgpool,但看起来很相似。目前,如果有人可以给出编译解析器的说明(可能使用提供的 makefile)而不会出现错误,以便可以提供(有效?)查询并输出解析树(以任何形式),这可能会非常有帮助!
最佳答案
<小时/>
您可能无法从 postgres 源 tarball 中获取任何文件并单独编译它。解析器使用内部 OOP 结构(用 C 实现)。但有一些可能性(并不简单) - ecpg 预处理器尝试将 PostgreSQL gram 文件转换为辅助 gram 文件 - 并且您可以使用相同的机制。它使用一个小实用程序parse.pl(它是PostgreSQL源代码的一部分(src/postgresql/src/interfaces/ecpg/preproc))
关于sql - 如何(如果可能)独立使用 PostgreSQL 的解析器(C 语言)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16520797/