Het probleem is dat de dump de functie pg_catalog.lowrite(integer, bytea)
gebruikt om het grote object te maken, en de standaardsyntaxis hoe bytea
letterlijke waarden worden weergegeven in PostgreSQL is gewijzigd met versie 9.0.
Er is de parameter bytea_output
die kan worden ingesteld op escape
om bytea
uit te voeren in het oude formaat met latere PostgreSQL-versies. Helaas, pg_dump
respecteert die parameter niet bij het maken van dumps, het gebruikt altijd de "nieuwe" hex
formaat.
Het resultaat is dat een dump met grote objecten uit een PostgreSQL-versie van 9.0 of hoger niet kan worden hersteld in een database van vóór 9.0.
U zult deze grote objecten op een andere manier moeten overzetten, waarschijnlijk door een migratieprogramma te schrijven.
Je zou (op de pgsql-hackers mailinglijst) een optie kunnen voorstellen om pg_dump
waarmee u bytea_escape
. kunt instellen voor de dump, maar u kunt weerstand ondervinden, omdat het herstellen van een dump van een latere PostgreSQL-versie naar een oudere niet wordt ondersteund.