aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bin/pg_dump/pg_dump.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/src/bin/pg_dump/pg_dump.c b/src/bin/pg_dump/pg_dump.c
index da6cc054b08..b72adcfbb8d 100644
--- a/src/bin/pg_dump/pg_dump.c
+++ b/src/bin/pg_dump/pg_dump.c
@@ -3333,18 +3333,28 @@ dumpSearchPath(Archive *AH)
static void
dumpToastCompression(Archive *AH)
{
- const char *toast_compression;
+ char *toast_compression;
PQExpBuffer qry;
- PGresult *res;
- if (AH->remoteVersion < 140000 || AH->dopt->no_toast_compression)
+ if (AH->dopt->no_toast_compression)
{
- /* server doesn't support compression, or we don't care */
+ /* we don't intend to dump the info, so no need to fetch it either */
return;
}
- res = ExecuteSqlQueryForSingleRow(AH, "SHOW default_toast_compression");
- toast_compression = PQgetvalue(res, 0, 0);
+ if (AH->remoteVersion < 140000)
+ {
+ /* pre-v14, the only method was pglz */
+ toast_compression = pg_strdup("pglz");
+ }
+ else
+ {
+ PGresult *res;
+
+ res = ExecuteSqlQueryForSingleRow(AH, "SHOW default_toast_compression");
+ toast_compression = pg_strdup(PQgetvalue(res, 0, 0));
+ PQclear(res);
+ }
qry = createPQExpBuffer();
appendPQExpBufferStr(qry, "SET default_toast_compression = ");
@@ -3363,9 +3373,8 @@ dumpToastCompression(Archive *AH)
* Also save it in AH->default_toast_compression, in case we're doing
* plain text dump.
*/
- AH->default_toast_compression = pg_strdup(toast_compression);
+ AH->default_toast_compression = toast_compression;
- PQclear(res);
destroyPQExpBuffer(qry);
}