Re: Non-text mode for pg_dumpall

From: Mahendra Singh Thalor <mahi6run(at)gmail(dot)com>
To: tushar <tushar(dot)ahuja(at)enterprisedb(dot)com>
Cc: jian he <jian(dot)universality(at)gmail(dot)com>, Vaibhav Dalvi <vaibhav(dot)dalvi(at)enterprisedb(dot)com>, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Non-text mode for pg_dumpall
Date: 2026-01-16 20:09:03
Message-ID: CAKYtNApq+6Riz26So1nmXkRpL_7o868+r6i=wxQ+AgGQ4oSLig@mail.gmail.com
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Thanks Tushar for the testing.

On Wed, 7 Jan 2026 at 13:53, tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> wrote:
>
>
>
> On Tue, Jan 6, 2026 at 11:56 AM Mahendra Singh Thalor <mahi6run(at)gmail(dot)com> wrote:
>>
>>
>>
>>
>> We have another thread for this. We have patches also. Last year, we
>> planned to block these databases at creation time.
>>
>> >
>> > It's probably harmless, we connect to the databases further down to do actual work. But it's also not nice. The toc.glo seems to have a bunch of extraneous entries of type COMMENT and CONNECT. Why is that? As far as poible this should have output pretty much identical to a plain pg_dumpall.
>> >
>> >
>> > cheer
>> >
>> >
>> > andrew
>>

Thanks Andrew for the feedback.

In the attached patch, I fixed some comments. In the next version, I
will try to make it much identical to a plain pg_dumpall.

>> If we don't dump those comments in non-text format, then the output of
>> "pg_restore -f filename dump_non_text" will not be the same as the
>> plain dump of pg_dumpall.
>>
>> Here, I am attaching an updated patch for the review and testing.
>>
>
> Hi Mahendra,
>
> I found a scenario in which the table is not restored if --transaction-size switch is used at the time of pg_restore operation
>
> Please refer this scenario:
> Case A --pg_restore operation with "--transaction-size" against the dump (taken using pg_dump) -
> create a table ( create table t(n int); )
> perform pg_dump ( ./pg_dump -Ft postgres -f xyz.tar)
> create a database (create database test;)
> perform pg_restore using switch "--transaction-size" ( ./pg_restore --transaction-size=1 -d test xyz.tar)
> table is restored into test database
>
> Case B --pg_restore operation with "--transaction-size" against the dump (taken using pg_dumpall) -
> create a table ( create table t(n int); )
> perform pg_dumpall ( ./pg_dumpall -Ft -f abc.tar)
> create a new cluster, start the server against a different port
> perform pg_restore using switch "--transaction-size" (./pg_restore -Ft --transaction-size=10 -d postgres abc.tar -p 9000 -C)
> table is not restored
>
> if i remove --transaction-size switch then this works.
>
> regards,
>

Fixed.

On Mon, 12 Jan 2026 at 13:39, tushar <tushar(dot)ahuja(at)enterprisedb(dot)com> wrote:
>
>
>
> On Tue, Jan 6, 2026 at 11:56 AM Mahendra Singh Thalor <mahi6run(at)gmail(dot)com> wrote:
>>
>>
>> Here, I am attaching an updated patch for the review and testing.
>>
>> Note: some of the review comments are still not fixed. I am working on
>> those and will post an updated patch.
>>
> Hi Mahendra,
> Please refer this scenario - if we are using with "--jobs" switch then getting an error at the time of restore
>
> Create a table ( create table t(n int); insert into t values (1); )
> Perform pg_dumpall ( ./pg_dumpall -Fd -f abc1.dr )
> Create a new cluster, start the server against a different port
> Perform pg_restore using switch "--jobs 4 " (./pg_restore -j 4 -d postgres abc1.dr/ -p 9000 -C )
>
> "
> [edb(at)1a1c15437e7c bin]$ ./pg_restore -j 4 -d postgres abc1.dr/ -p 9000 -C
> pg_restore: error: could not execute query: ERROR: role "edb" already exists
> Command was: CREATE ROLE edb;
> ALTER ROLE edb WITH SUPERUSER INHERIT CREATEROLE CREATEDB LOGIN REPLICATION BYPASSRLS;
>
>
> pg_restore: error: could not execute query: ERROR: syntax error at or near "\"
> LINE 1: \connect template1
> ^
> Command was: \connect template1
>
>
>
> pg_restore: error: could not execute query: ERROR: syntax error at or near "\"
> LINE 1: \connect postgres
> ^
> Command was: \connect postgres
>
>
>
> pg_restore: warning: errors ignored on restore: 3
> [edb(at)1a1c15437e7c bin]$
> "
>
> regards,

Fixed this syntax error but user error is still there for parallel
mode(for non-parallel, fixed). This will be fixed in the next version.

Here, I am attaching an updated patch for the review and testing.

--
Thanks and Regards
Mahendra Singh Thalor
EnterpriseDB: http://www.enterprisedb.com

Attachment Content-Type Size
v14_17012026-Non-text-modes-for-pg_dumpall-correspondingly-change.patch application/octet-stream 90.9 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Nico Williams 2026-01-16 20:35:36 Re: Hackorum - a new mailing list frontend
Previous Message Alexander Lakhin 2026-01-16 20:00:00 Re: Issues with ON CONFLICT UPDATE and REINDEX CONCURRENTLY