mirror of
https://github.com/postgres/postgres.git
synced 2025-05-01 01:04:50 +03:00
pg_basebackup: Fix a couple of recently-introduced bugs.
The server expects the compression level to be between 1 and 9, but Z_DEFAULT_COMPRESSION is -1, so we must not try to send that value to the server. Because pg_basebackup's -R option is implemented on the client side, it can't be used in combination with a backup target. Error out if someone tries that, instead of silently ignoring the option. Both issues were reported by Tushar Ahuja; patch by me. Discussion: http://postgr.es/m/CA+TgmoaMwgdx8HxBjF8hmbohVvPL_0H5LqNrSq0uU+7BKp_Q2A@mail.gmail.com
This commit is contained in:
parent
acea505186
commit
dabf63bc9a
@ -1871,6 +1871,12 @@ BaseBackup(void)
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (writerecoveryconf)
|
||||||
|
{
|
||||||
|
pg_log_error("recovery configuration cannot be written when a backup target is used");
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
AppendPlainCommandOption(&buf, use_new_option_syntax, "TABLESPACE_MAP");
|
AppendPlainCommandOption(&buf, use_new_option_syntax, "TABLESPACE_MAP");
|
||||||
|
|
||||||
if ((colon = strchr(backup_target, ':')) == NULL)
|
if ((colon = strchr(backup_target, ':')) == NULL)
|
||||||
@ -1913,7 +1919,7 @@ BaseBackup(void)
|
|||||||
}
|
}
|
||||||
AppendStringCommandOption(&buf, use_new_option_syntax,
|
AppendStringCommandOption(&buf, use_new_option_syntax,
|
||||||
"COMPRESSION", compressmethodstr);
|
"COMPRESSION", compressmethodstr);
|
||||||
if (compresslevel != 0)
|
if (compresslevel != 0 && compresslevel != Z_DEFAULT_COMPRESSION)
|
||||||
AppendIntegerCommandOption(&buf, use_new_option_syntax,
|
AppendIntegerCommandOption(&buf, use_new_option_syntax,
|
||||||
"COMPRESSION_LEVEL", compresslevel);
|
"COMPRESSION_LEVEL", compresslevel);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user