How to use the SQL parser subsystem

Поиск
Список
Период
Сортировка
От Ravindra Jaju
Тема How to use the SQL parser subsystem
Дата
Msg-id d65123830701040631y6bec5a3bh248c676d247b38e4@mail.gmail.com
обсуждение исходный текст
Ответы Re: How to use the SQL parser subsystem  (Martijn van Oosterhout <kleptog@svana.org>)
Re: How to use the SQL parser subsystem  (Tatsuo Ishii <ishii@postgresql.org>)
Список pgsql-general
Hi.

Is it possible to use the SQL parser embedded inside the postgres code via some public API?
I wish to get a parsed SQL query in any format which lends itself to easy analysis (structural, for example) so as to be able to find similarities between queries.

I tried peeking around a bit, and tried pulling out src/backend/parser - but that depends on other parts of the code, making it a bit non-trivial. Plus, any changes in the base code upstream would not be available to this pulled-out application over time. Looking further, I noticed on my Fedora distribution that the pg devel package has a parser/parser.h file which exposes the function 'raw_parser' which is the function that seemed most interesting to me while exploring the code too.

I have some questions:
1] is 'raw_parser' the right function to parse an SQL statement (for mainly structural/syntactic analysis)?
2] If yes, I found that none of the shared library files expose this function - I could not link a simple C program with this function successfully. (I tried all the .so files related to postgres! :-()
3] If not, what would be a better mechanism to re-use all the work already done in postgres for SQL analysis?

regards,
jaju

В списке pgsql-general по дате отправления:

Предыдущее
От: "BigSmoke"
Дата:
Сообщение: Pure PostgreSQL unit tests - test and debug pgsql constraints and procedures/functions
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: How to use the SQL parser subsystem