diff options
Diffstat (limited to 'src/backend/replication/basebackup_lz4.c')
-rw-r--r-- | src/backend/replication/basebackup_lz4.c | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/backend/replication/basebackup_lz4.c b/src/backend/replication/basebackup_lz4.c index d838f723d02..06c161ddc4c 100644 --- a/src/backend/replication/basebackup_lz4.c +++ b/src/backend/replication/basebackup_lz4.c @@ -56,12 +56,13 @@ const bbsink_ops bbsink_lz4_ops = { #endif /* - * Create a new basebackup sink that performs lz4 compression using the - * designated compression level. + * Create a new basebackup sink that performs lz4 compression. */ bbsink * -bbsink_lz4_new(bbsink *next, int compresslevel) +bbsink_lz4_new(bbsink *next, bc_specification *compress) { + int compresslevel; + #ifndef USE_LZ4 ereport(ERROR, (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), @@ -72,11 +73,13 @@ bbsink_lz4_new(bbsink *next, int compresslevel) Assert(next != NULL); - if (compresslevel < 0 || compresslevel > 12) - ereport(ERROR, - (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), - errmsg("lz4 compression level %d is out of range", - compresslevel))); + if ((compress->options & BACKUP_COMPRESSION_OPTION_LEVEL) == 0) + compresslevel = 0; + else + { + compresslevel = compress->level; + Assert(compresslevel >= 1 && compresslevel <= 12); + } sink = palloc0(sizeof(bbsink_lz4)); *((const bbsink_ops **) &sink->base.bbs_ops) = &bbsink_lz4_ops; |