diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2009-04-01 18:54:27 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2009-04-01 18:54:27 +0000 |
commit | bfd17f94b6f9215fac28a0008de72294756b7f01 (patch) | |
tree | 5e22f037faafcbb556ec7fae975e62f721926437 | |
parent | 00b24e1678ca3bd18535cbd14b73e38f5edc0aac (diff) | |
download | postgresql-bfd17f94b6f9215fac28a0008de72294756b7f01.tar.gz postgresql-bfd17f94b6f9215fac28a0008de72294756b7f01.zip |
Improve pg_dump's query for retrieving BLOB comments to be more efficient
when there are many blobs and not so many comments. Tamas Vincze
-rw-r--r-- | src/bin/pg_dump/pg_dump.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c index dc652aad747..7d46d80e91f 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.531 2009/03/26 22:26:07 petere Exp $ + * $PostgreSQL: pgsql/src/bin/pg_dump/pg_dump.c,v 1.532 2009/04/01 18:54:27 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1995,7 +1995,13 @@ dumpBlobComments(Archive *AH, void *arg) selectSourceSchema("pg_catalog"); /* Cursor to get all BLOB comments */ - if (AH->remoteVersion >= 70200) + if (AH->remoteVersion >= 70300) + blobQry = "DECLARE blobcmt CURSOR FOR SELECT loid, " + "obj_description(loid, 'pg_largeobject') " + "FROM (SELECT DISTINCT loid FROM " + "pg_description d JOIN pg_largeobject l ON (objoid = loid) " + "WHERE classoid = 'pg_largeobject'::regclass) ss"; + else if (AH->remoteVersion >= 70200) blobQry = "DECLARE blobcmt CURSOR FOR SELECT loid, " "obj_description(loid, 'pg_largeobject') " "FROM (SELECT DISTINCT loid FROM pg_largeobject) ss"; |