BUG #10611: pg_restore incorrectly restores DB dump (plain and tar format) containing LARGE OBJECTS witdh commen

Поиск
Список
Период
Сортировка
От jacek.zalewski@asseco.pl
Тема BUG #10611: pg_restore incorrectly restores DB dump (plain and tar format) containing LARGE OBJECTS witdh commen
Дата
Msg-id 20140611140526.2589.64534@wrigleys.postgresql.org
обсуждение исходный текст
Ответы Re: BUG #10611: pg_restore incorrectly restores DB dump (plain and tar format) containing LARGE OBJECTS witdh commen  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-bugs
The following bug has been logged on the website:

Bug reference:      10611
Logged by:          Jacek Zalewski
Email address:      jacek.zalewski@asseco.pl
PostgreSQL version: 8.4.21
Operating system:   Windows 7 32bit
Description:

My database includes many LARGE OBJECTs with COMMENTs set by COMMENT ON
LARGE OBJECT clause.
I prepared 3 dumps:
dump#1: pg_dump -U postgres -v -Fc -Z9 -E WIN1250 -o -b -f dump.dmp
<databasename>
dump#2: pg_dump -U postgres -v -Ft -E WIN1250 -o -b -f dump.tar
<databasename>
dump#3: pg_dump -U postgres -v -Fp -E WIN1250 -o -b -f dump.sql
<databasename>

Restoring dump#3 in psql always works OK.
But, when database includes more than 'unknown' numeber of LARGE OBJECTs
with COMMENTS, I can't restore dump#1 and dump#2 using commands:

dump#1: pg_restore -U postgres -v -d <emptydatabasename> dump.dmp >
restore.log 2>&1
dump#2: pg_restore -U postgres -v -d <emptydatabasename> dump.tar >
restore.log 2>&1

When database includes a few LARGE OBJECTs with COMMENTs (lets say 1 or 2 or
3) pg_restore works OK.
But when database includes, lets say 99 LARGE OBJECTs, pg_restore ends with
error:

----ERROR BEG
pg_restore: łączenie z bazą danych w celu odtworzenia
pg_restore: tworzenie SCHEMA public
pg_restore: tworzenie COMMENT SCHEMA public
pg_restore: tworzenie PROCEDURAL LANGUAGE plpgsql
pg_restore: [archiwizator (db)] Błąd podczas PRZETWARZANIA TOC:
pg_restore: [archiwizator (db)] Błąd z wpisu 444 TOC; 2612 16386 PROCEDURAL
LANGUAGE plpgsql postgres
pg_restore: [archiwizator (db)] could not execute query: BŁĄD:  język
"plpgsql" juĹĽ istnieje
    Command was: CREATE PROCEDURAL LANGUAGE plpgsql;



pg_restore: tworzenie FUNCTION gen_lo()
pg_restore: tworzenie TABLE table_oids
pg_restore: tworzenie SEQUENCE table_oids_id_seq
pg_restore: tworzenie SEQUENCE OWNED BY table_oids_id_seq
pg_restore: wykonywanie SEQUENCE SET table_oids_id_seq
pg_restore: tworzenie DEFAULT id
pg_restore: odtwarzanie danych tabeli "table_oids"
pg_restore: odtwarzanie BLOBS
pg_restore: odtwarzanie dużego obiektu z OID 100001
pg_restore: odtwarzanie dużego obiektu z OID 100002
pg_restore: odtwarzanie dużego obiektu z OID 100003
pg_restore: odtwarzanie dużego obiektu z OID 100004
pg_restore: odtwarzanie dużego obiektu z OID 100005
pg_restore: odtwarzanie dużego obiektu z OID 100006
pg_restore: odtwarzanie dużego obiektu z OID 100007
pg_restore: odtwarzanie dużego obiektu z OID 100008
pg_restore: odtwarzanie dużego obiektu z OID 100009
pg_restore: odtwarzanie dużego obiektu z OID 100010
pg_restore: odtwarzanie dużego obiektu z OID 100011
pg_restore: odtwarzanie dużego obiektu z OID 100012
pg_restore: odtwarzanie dużego obiektu z OID 100013
pg_restore: odtwarzanie dużego obiektu z OID 100014
pg_restore: odtwarzanie dużego obiektu z OID 100015
pg_restore: odtwarzanie dużego obiektu z OID 100016
pg_restore: odtwarzanie dużego obiektu z OID 100017
pg_restore: odtwarzanie dużego obiektu z OID 100018
pg_restore: odtwarzanie dużego obiektu z OID 100019
pg_restore: odtwarzanie dużego obiektu z OID 100020
pg_restore: odtwarzanie dużego obiektu z OID 100021
pg_restore: odtwarzanie dużego obiektu z OID 100022
pg_restore: odtwarzanie dużego obiektu z OID 100023
pg_restore: odtwarzanie dużego obiektu z OID 100024
pg_restore: odtwarzanie dużego obiektu z OID 100025
pg_restore: odtwarzanie dużego obiektu z OID 100026
pg_restore: odtwarzanie dużego obiektu z OID 100027
pg_restore: odtwarzanie dużego obiektu z OID 100028
pg_restore: odtwarzanie dużego obiektu z OID 100029
pg_restore: odtwarzanie dużego obiektu z OID 100030
pg_restore: odtwarzanie dużego obiektu z OID 100031
pg_restore: odtwarzanie dużego obiektu z OID 100032
pg_restore: odtwarzanie dużego obiektu z OID 100033
pg_restore: odtwarzanie dużego obiektu z OID 100034
pg_restore: odtwarzanie dużego obiektu z OID 100035
pg_restore: odtwarzanie dużego obiektu z OID 100036
pg_restore: odtwarzanie dużego obiektu z OID 100037
pg_restore: odtwarzanie dużego obiektu z OID 100038
pg_restore: odtwarzanie dużego obiektu z OID 100039
pg_restore: odtwarzanie dużego obiektu z OID 100040
pg_restore: odtwarzanie dużego obiektu z OID 100041
pg_restore: odtwarzanie dużego obiektu z OID 100042
pg_restore: odtwarzanie dużego obiektu z OID 100043
pg_restore: odtwarzanie dużego obiektu z OID 100044
pg_restore: odtwarzanie dużego obiektu z OID 100045
pg_restore: odtwarzanie dużego obiektu z OID 100046
pg_restore: odtwarzanie dużego obiektu z OID 100047
pg_restore: odtwarzanie dużego obiektu z OID 100048
pg_restore: odtwarzanie dużego obiektu z OID 100049
pg_restore: odtwarzanie dużego obiektu z OID 100050
pg_restore: odtwarzanie dużego obiektu z OID 100051
pg_restore: odtwarzanie dużego obiektu z OID 100052
pg_restore: odtwarzanie dużego obiektu z OID 100053
pg_restore: odtwarzanie dużego obiektu z OID 100054
pg_restore: odtwarzanie dużego obiektu z OID 100055
pg_restore: odtwarzanie dużego obiektu z OID 100056
pg_restore: odtwarzanie dużego obiektu z OID 100057
pg_restore: odtwarzanie dużego obiektu z OID 100058
pg_restore: odtwarzanie dużego obiektu z OID 100059
pg_restore: odtwarzanie dużego obiektu z OID 100060
pg_restore: odtwarzanie dużego obiektu z OID 100061
pg_restore: odtwarzanie dużego obiektu z OID 100062
pg_restore: odtwarzanie dużego obiektu z OID 100063
pg_restore: odtwarzanie dużego obiektu z OID 100064
pg_restore: odtwarzanie dużego obiektu z OID 100065
pg_restore: odtwarzanie dużego obiektu z OID 100066
pg_restore: odtwarzanie dużego obiektu z OID 100067
pg_restore: odtwarzanie dużego obiektu z OID 100068
pg_restore: odtwarzanie dużego obiektu z OID 100069
pg_restore: odtwarzanie dużego obiektu z OID 100070
pg_restore: odtwarzanie dużego obiektu z OID 100071
pg_restore: odtwarzanie dużego obiektu z OID 100072
pg_restore: odtwarzanie dużego obiektu z OID 100073
pg_restore: odtwarzanie dużego obiektu z OID 100074
pg_restore: odtwarzanie dużego obiektu z OID 100075
pg_restore: odtwarzanie dużego obiektu z OID 100076
pg_restore: odtwarzanie dużego obiektu z OID 100077
pg_restore: odtwarzanie dużego obiektu z OID 100078
pg_restore: odtwarzanie dużego obiektu z OID 100079
pg_restore: odtwarzanie dużego obiektu z OID 100080
pg_restore: odtwarzanie dużego obiektu z OID 100081
pg_restore: odtwarzanie dużego obiektu z OID 100082
pg_restore: odtwarzanie dużego obiektu z OID 100083
pg_restore: odtwarzanie dużego obiektu z OID 100084
pg_restore: odtwarzanie dużego obiektu z OID 100085
pg_restore: odtwarzanie dużego obiektu z OID 100086
pg_restore: odtwarzanie dużego obiektu z OID 100087
pg_restore: odtwarzanie dużego obiektu z OID 100088
pg_restore: odtwarzanie dużego obiektu z OID 100089
pg_restore: odtwarzanie dużego obiektu z OID 100090
pg_restore: odtwarzanie dużego obiektu z OID 100091
pg_restore: odtwarzanie dużego obiektu z OID 100092
pg_restore: odtwarzanie dużego obiektu z OID 100093
pg_restore: odtwarzanie dużego obiektu z OID 100094
pg_restore: odtwarzanie dużego obiektu z OID 100095
pg_restore: odtwarzanie dużego obiektu z OID 100096
pg_restore: odtwarzanie dużego obiektu z OID 100097
pg_restore: odtwarzanie dużego obiektu z OID 100098
pg_restore: odtwarzanie dużego obiektu z OID 100099
pg_restore: odtworzono 99 dużych obiektów
pg_restore: odtwarzanie BLOB COMMENTS
pg_restore: [archiwizator (db)] Błąd z wpisu 1780 TOC; 0 0 BLOB COMMENTS
BLOB COMMENTS
pg_restore: [archiwizator (db)] could not execute query: BŁĄD:  błąd
składni w lub blisko "O"
LINIA 68: COMMENT O
                  ^
    Command was: COMMENT ON LARGE OBJECT 100001 IS
'DiademSzablonId=0100001';
COMMENT ON LARGE OBJECT 100002 IS 'DiademSzablonId=0100002';
CO...
pg_restore: [archiwizator (db)] could not execute query: BŁĄD:  błąd
składni w lub blisko "N"
LINIA 1: N LARGE OBJECT 100068 IS 'DiademSzablonId=0100068';
         ^
    Command was: N LARGE OBJECT 100068 IS 'DiademSzablonId=0100068';
COMMENT ON LARGE OBJECT 100069 IS 'DiademSzablonId=0100069';
COMMENT ON ...
pg_restore: tworzenie CONSTRAINT table_oids_pkey
pg_restore: ustawienie właściciela i uprawnień dla SCHEMA public
pg_restore: ustawienie właściciela i uprawnień dla COMMENT SCHEMA public
pg_restore: ustawienie właściciela i uprawnień dla ACL public
pg_restore: ustawienie właściciela i uprawnień dla PROCEDURAL LANGUAGE
plpgsql
pg_restore: ustawienie właściciela i uprawnień dla FUNCTION gen_lo()
pg_restore: ustawienie właściciela i uprawnień dla TABLE table_oids
pg_restore: ustawienie właściciela i uprawnień dla SEQUENCE
table_oids_id_seq
pg_restore: ustawienie właściciela i uprawnień dla SEQUENCE OWNED BY
table_oids_id_seq
pg_restore: ustawienie właściciela i uprawnień dla DEFAULT id
pg_restore: ustawienie właściciela i uprawnień dla CONSTRAINT
table_oids_pkey
OSTRZEŻENIE: błędy ignorowane przy odtworzeniu: 3
----ERROR END

I can send You email with 3 small dumps and pg_restore logs to facilitate
reproduce an error.

Best regards, Jacek Zalewski.

В списке pgsql-bugs по дате отправления:

Предыдущее
От: Magnus Hagander
Дата:
Сообщение: Re: Unable to revoke insert privileges on a table
Следующее
От: ron@rajyaseva.in
Дата:
Сообщение: BUG #10622: PLPerl extenstion install failure - why is it asking ActivePerl?