Re: How to redirect output from PostgreSQL pg_recvlogical to a file or a pipe?

From: Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>
To: David Ventimiglia <davidaventimiglia(at)hasura(dot)io>, pgsql-general(at)lists(dot)postgresql(dot)org
Subject: Re: How to redirect output from PostgreSQL pg_recvlogical to a file or a pipe?
Date: 2024-01-12 19:48:42
Message-ID: daf7934f-18f5-48fe-a7e1-924c8697dc6c@aklaver.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 1/12/24 11:34, David Ventimiglia wrote:
> Hello! How do I redirect logical decoding output from the PostgreSQL CLI
> tool |pg_recvlogical| either to a file or to another command via a pipe?
> I ask because when I try the obvious, no output is recorded or sent:
>
> |pg_recvlogical -d postgres --slot test --start -f - >> sample.jsonl |
>
> Lest there be any confusion, I already created the slot in an earlier
> step. Moreover, I can verify that if I omit the output redirection |>>
> sample| then it does work, insofar as it emits the expected change
> events when I perform DML in another terminal window. When I include the
> redirection (or alternatively, set up a pipeline), then nothing happens.

You left out the important part of the SO question:

pg_recvlogical -d postgres --slot test --create-slot -P wal2json

I can get:

pg_recvlogical -d postgres --slot test --start -f - >> sample.jsonl

to work when I do:

pg_recvlogical -d postgres --slot test --create-slot

wal2json seems to be the issue.

>
> Note that I am aware of the option to pass a filename to the -f switch
> to write to a file.  That works, but it's not what I'm after because it
> doesn't help update my mental model of how this is supposed to work.
> Based on my current (flawed) mental model built up from command line
> experience with other tools, this /should/ work.  I should be able to
> send the output to stdout and then redirect it to a file.  It surprises
> me that I cannot.
>
> Anyway, thanks!
>
> Best,
>
> David
>

--
Adrian Klaver
adrian(dot)klaver(at)aklaver(dot)com

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Francisco Olarte 2024-01-12 19:50:24 Re: How to redirect output from PostgreSQL pg_recvlogical to a file or a pipe?
Previous Message David Ventimiglia 2024-01-12 19:34:36 How to redirect output from PostgreSQL pg_recvlogical to a file or a pipe?