Just noticed that the getBlobs() query does not work for a 7.3 server
(maybe <= 7.3) due to the following change in commit 23f34fa4 [1]:

     else if (fout->remoteVersion >= 70100)
         appendPQExpBufferStr(blobQry,
-                             "SELECT DISTINCT loid, NULL::oid, NULL::oid"
+                             "SELECT DISTINCT loid, NULL::oid, NULL, "
+                             "NULL AS rlomacl, NULL AS initlomacl, "
+                             "NULL AS initrlomacl "
                              " FROM pg_largeobject");
     else
         appendPQExpBufferStr(blobQry,
-                             "SELECT oid, NULL::oid, NULL::oid"
+                             "SELECT oid, NULL::oid, NULL, "
+                             "NULL AS rlomacl, NULL AS initlomacl, "
+                             "NULL AS initrlomacl "
                              " FROM pg_class WHERE relkind = 'l'");

The following error is reported by the server:

pg_dump: [archiver (db)] query failed: ERROR:  Unable to identify an
ordering operator '<' for type '"unknown"'
        Use an explicit ordering operator or modify the query
pg_dump: [archiver (db)] query was: SELECT DISTINCT loid, NULL::oid, NULL,
NULL AS rlomacl, NULL AS initlomacl, NULL AS initrlomacl  FROM pg_largeobject

I could fix that using the attached patch.

Thanks,
Amit

[1]
https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=23f34fa4ba358671adab16773e79c17c92cbc870
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index 299e887..a1165fa 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -2881,15 +2881,15 @@ getBlobs(Archive *fout)
 						  username_subquery);
 	else if (fout->remoteVersion >= 70100)
 		appendPQExpBufferStr(blobQry,
-							 "SELECT DISTINCT loid, NULL::oid, NULL, "
-							 "NULL AS rlomacl, NULL AS initlomacl, "
-							 "NULL AS initrlomacl "
+							 "SELECT DISTINCT loid, NULL::oid, NULL::oid, "
+							 "NULL::oid AS rlomacl, NULL::oid AS initlomacl, "
+							 "NULL::oid AS initrlomacl "
 							 " FROM pg_largeobject");
 	else
 		appendPQExpBufferStr(blobQry,
-							 "SELECT oid, NULL::oid, NULL, "
-							 "NULL AS rlomacl, NULL AS initlomacl, "
-							 "NULL AS initrlomacl "
+							 "SELECT oid, NULL::oid, NULL::oid, "
+							 "NULL::oid AS rlomacl, NULL::oid AS initlomacl, "
+							 "NULL::oid AS initrlomacl "
 							 " FROM pg_class WHERE relkind = 'l'");
 
 	res = ExecuteSqlQuery(fout, blobQry->data, PGRES_TUPLES_OK);
-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to