15
15
*
16
16
*
17
17
* IDENTIFICATION
18
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.172 2009/06/11 14:49:07 momjian Exp $
18
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_backup_archiver.c,v 1.173 2009/07/21 21:46:10 tgl Exp $
19
19
*
20
20
*-------------------------------------------------------------------------
21
21
*/
@@ -895,7 +895,7 @@ EndRestoreBlobs(ArchiveHandle *AH)
895
895
* Called by a format handler to initiate restoration of a blob
896
896
*/
897
897
void
898
- StartRestoreBlob (ArchiveHandle * AH , Oid oid )
898
+ StartRestoreBlob (ArchiveHandle * AH , Oid oid , bool drop )
899
899
{
900
900
Oid loOid ;
901
901
@@ -906,6 +906,10 @@ StartRestoreBlob(ArchiveHandle *AH, Oid oid)
906
906
907
907
ahlog (AH , 2 , "restoring large object with OID %u\n" , oid );
908
908
909
+ if (drop )
910
+ ahprintf (AH , "SELECT CASE WHEN EXISTS(SELECT 1 FROM pg_catalog.pg_largeobject WHERE loid = '%u') THEN pg_catalog.lo_unlink('%u') END;\n" ,
911
+ oid , oid );
912
+
909
913
if (AH -> connection )
910
914
{
911
915
loOid = lo_create (AH -> connection , oid );
@@ -919,7 +923,8 @@ StartRestoreBlob(ArchiveHandle *AH, Oid oid)
919
923
}
920
924
else
921
925
{
922
- ahprintf (AH , "SELECT lo_open(lo_create(%u), %d);\n" , oid , INV_WRITE );
926
+ ahprintf (AH , "SELECT pg_catalog.lo_open(pg_catalog.lo_create('%u'), %d);\n" ,
927
+ oid , INV_WRITE );
923
928
}
924
929
925
930
AH -> writingBlob = 1 ;
@@ -943,7 +948,7 @@ EndRestoreBlob(ArchiveHandle *AH, Oid oid)
943
948
}
944
949
else
945
950
{
946
- ahprintf (AH , "SELECT lo_close(0);\n\n" );
951
+ ahprintf (AH , "SELECT pg_catalog. lo_close(0);\n\n" );
947
952
}
948
953
}
949
954
@@ -1254,7 +1259,7 @@ dump_lo_buf(ArchiveHandle *AH)
1254
1259
1255
1260
/* Hack: turn off writingBlob so ahwrite doesn't recurse to here */
1256
1261
AH -> writingBlob = 0 ;
1257
- ahprintf (AH , "SELECT lowrite(0, '%s');\n" , str );
1262
+ ahprintf (AH , "SELECT pg_catalog. lowrite(0, '%s');\n" , str );
1258
1263
AH -> writingBlob = 1 ;
1259
1264
1260
1265
free (str );
0 commit comments