aboutsummaryrefslogtreecommitdiff
path: root/src/bin/pg_dump/pg_dump.c
diff options
context:
space:
mode:
authorItagaki Takahiro <itagaki.takahiro@gmail.com>2009-12-14 00:39:11 +0000
committerItagaki Takahiro <itagaki.takahiro@gmail.com>2009-12-14 00:39:11 +0000
commit84f910a7076e09e551bf69e0972473ec15d33c79 (patch)
tree7ce85524e7d24091581b2a0ce6309422d0330811 /src/bin/pg_dump/pg_dump.c
parent0182d6f646997e486f56f847001ff74694bdd7da (diff)
downloadpostgresql-84f910a7076e09e551bf69e0972473ec15d33c79.tar.gz
postgresql-84f910a7076e09e551bf69e0972473ec15d33c79.zip
Additional fixes for large object access control.
Use pg_largeobject_metadata.oid instead of pg_largeobject.loid to enumerate existing large objects in pg_dump, pg_restore, and contrib modules.
Diffstat (limited to 'src/bin/pg_dump/pg_dump.c')
-rw-r--r--src/bin/pg_dump/pg_dump.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 7af461bd5a6..bb361b33669 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -12,7 +12,7 @@
* by PostgreSQL
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.555 2009/12/11 03:34:56 itagaki Exp $
+ * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.556 2009/12/14 00:39:11 itagaki Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1945,7 +1945,9 @@ hasBlobs(Archive *AH)
selectSourceSchema("pg_catalog");
/* Check for BLOB OIDs */
- if (AH->remoteVersion >= 70100)
+ if (AH->remoteVersion >= 80500)
+ blobQry = "SELECT oid FROM pg_largeobject_metadata LIMIT 1";
+ else if (AH->remoteVersion >= 70100)
blobQry = "SELECT loid FROM pg_largeobject LIMIT 1";
else
blobQry = "SELECT oid FROM pg_class WHERE relkind = 'l' LIMIT 1";
@@ -1981,7 +1983,9 @@ dumpBlobs(Archive *AH, void *arg)
selectSourceSchema("pg_catalog");
/* Cursor to get all BLOB OIDs */
- if (AH->remoteVersion >= 70100)
+ if (AH->remoteVersion >= 80500)
+ blobQry = "DECLARE bloboid CURSOR FOR SELECT oid FROM pg_largeobject_metadata";
+ else if (AH->remoteVersion >= 70100)
blobQry = "DECLARE bloboid CURSOR FOR SELECT DISTINCT loid FROM pg_largeobject";
else
blobQry = "DECLARE bloboid CURSOR FOR SELECT oid FROM pg_class WHERE relkind = 'l'";