Не можете ввести raw_parser в postgreSQL? - PullRequest
0 голосов
/ 23 октября 2011

Я пытаюсь проанализировать, как postgreSQL анализирует запрос, и после некоторой трассировки исходного кода postgreSQL с помощью встраивания printf () здесь и там, я знал, что запрос будет проанализирован в необработанном дереве синтаксического анализа с помощью raw_parser, который расположен в файле parser.c.

Странно то, что я уже встроил пустышку printf () в raw_parser, и после переустановки postgreSQL и выполнения запроса мой пустышка printf () не выводится на экран!

Кто-нибудь может мне помочь, где я ошибся?

Заранее спасибо: D

1 Ответ

1 голос
/ 23 октября 2011

если вы используете printf (stderr, "...."), то вы можете найти результат в журнале сервера.Не забывайте - вы не работаете с сервером напрямую.Для целей отладки есть функция elog - это похоже на printf для клиентского приложения:

elog(NOTICE, "some text");

строка формата такая же, как формат printf - но вы должны помнить, что PostgreSQL использует другие форматы, чем glibc - так что выможет показывать только целочисленные переменные или переменныеСтроковые переменные используют другой формат, чем строка с нулевым окончанием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...