De acordo com meu entendimento, quando executamos um comando ou consulta, o cliente Postgres envia uma mensagem de front-end e, em troca, obtém a resposta no formato de mensagem de back-end.
Como faço para capturar e verificar essas mensagens em uma caixa Linux?
Por exemplo, digamos que estou executando o comando abaixo via psql
cliente
psql --username=foo --dbname=mydb --password=foobar
Acredito que o cliente cria StartupMessage .
Existe uma maneira de rastrear essa interação? Considerando que o servidor e o cliente estão sendo executados na mesma máquina.
Eu costumo usar o Wireshark, ele entende e interpreta o protocolo PostgreSQL.
Eu apenas
strace -s4096
o programa psql (porque é mais fácil de fazer do que fazer o strace do backend) e puxo as mensagens da saída do strace. O filehandle relevante a ser procurado geralmente é 3, mas suponho que nem sempre será o caso.