Обсуждение: BUG #13446: pg_dump fails with large tuples

Поиск
Список
Период
Сортировка

BUG #13446: pg_dump fails with large tuples

От
cpt@novozymes.com
Дата:
The following bug has been logged on the website:

Bug reference:      13446
Logged by:          CPT
Email address:      cpt@novozymes.com
PostgreSQL version: 9.3.5
Operating system:   Linux, Ubuntu 12, 64-bit
Description:

It looks to me like pg_dump is limited to 1GB per row as a textual
representation.

# create table stringtest (test text);
CREATE TABLE
# insert into stringtest select repeat('A', (1024*2014*510));
INSERT 1
# alter table stringtest add test2 text;
ALTER TABLE
# update stringtest set test2 = test;
UPDATE 1
# \q

$

So far so good....  Now let's try to back this up using pg_dump:

$ pg_dump ... -t stringtest
...
pg_dump: Dumping the contents of table "stringtest" failed: PQgetResult()
failed.
pg_dump: Error message from server: ERROR:  out of memory
DETAIL:  Cannot enlarge string buffer containing 1051791361 bytes by
1051791360 more bytes.
pg_dump: The command was: COPY public.stringtest (test, test2) TO stdout;

This message then shows up in the server logs.  It looks like maybe pg_dump
is limited to exactly 1GB textual representation?

Re: BUG #13446: pg_dump fails with large tuples

От
Michael Paquier
Дата:
On Tue, Jun 16, 2015 at 8:20 PM,  <cpt@novozymes.com> wrote:
> This message then shows up in the server logs.  It looks like maybe pg_dump
> is limited to exactly 1GB textual representation?

Yep. That's a known limitation of COPY and palloc() in general.
--
Michael

Re: BUG #13446: pg_dump fails with large tuples

От
jaime soler
Дата:
El mié, 17-06-2015 a las 13:08 +0900, Michael Paquier escribió:
> On Tue, Jun 16, 2015 at 8:20 PM,  <cpt@novozymes.com> wrote:
> > This message then shows up in the server logs.  It looks like maybe pg_dump
> > is limited to exactly 1GB textual representation?
>
> Yep. That's a known limitation of COPY and palloc() in general.

But could we use pg_dump with -Fc or -Fd in this case ?  or the only way
to backup this table is using physical backup ?

Thanks
> --
> Michael
>
>