Package: postgresql-common Version: 207.pgdg90+1 Severity: wishlist Tags: patch
Hi, please consider to support the --clone option for pg_upgrade, which makes use of reflinks (added in version 12). Patch attached. Regards, Til -- System Information: Debian Release: 9.11 APT prefers oldstable-updates APT policy: (500, 'oldstable-updates'), (500, 'oldstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 4.19.0-0.bpo.6-amd64 (SMP w/4 CPU cores) Locale: LANG=de_CH.UTF-8, LC_CTYPE=de_CH.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages postgresql-common depends on: ii adduser 3.115 ii debconf [debconf-2.0] 1.5.61 ii init-system-helpers 1.48 ii lsb-base 9.20161125 ii postgresql-client-common 207.pgdg90+1 ii procps 2:3.3.12-3+deb9u1 ii ssl-cert 1.0.39 ii ucf 3.0036 Versions of packages postgresql-common recommends: ii e2fsprogs 1.43.4-2+deb9u1 ii logrotate 3.11.0-0.1 Versions of packages postgresql-common suggests: pn libjson-perl <none> -- debconf information excluded
--- /usr/bin/pg_upgradecluster.orig 2019-10-14 12:36:24.516188221 +0200 +++ /usr/bin/pg_upgradecluster 2019-10-14 12:43:42.774257835 +0200 @@ -233,6 +233,7 @@ my $method = 'dump'; my $link = 0; +my $clone = 0; my $keep_port = 0; my $start = -1; # -1 = auto @@ -250,6 +251,7 @@ 'm|method=s' => \$method, 'j|jobs=s', => \$jobs, 'k|link' => \$link, + 'clone' => \$clone, 'keep-port' => \$keep_port, 'rename=s' => \$newcluster, 'old-bindir=s' => \$old_bindir, @@ -259,6 +261,7 @@ $method eq 'dump' or $method eq 'upgrade' or error 'method must be "dump" or "upgrade"'; $link and $method eq 'dump' and error 'cannot use --link with --method=dump'; +$clone and $method eq 'dump' and error 'cannot use --clone with --method=dump'; $jobs and $method eq 'dump' and error 'cannot use --jobs with --method=dump'; # untaint @@ -556,6 +559,7 @@ } push @argv, '-D', $newinfo{configdir}; push @argv, "--link" if $link; + push @argv, "--clone" if $clone; push @argv, '-j', $jobs if $jobs; # Make a directory for pg_upgrade to store its reports and log @@ -824,6 +828,12 @@ cluster. This option is merely passed on to pg_upgrade. See L<pg_upgrade(1)> for details. +=item B<--clone> + +In pg_upgrade mode, use efficient file cloning (also known as "reflinks" +on some systems) instead of copying files to the new cluster. This option +is merely passed on to pg_upgrade. See L<pg_upgrade(1)> for details. + =item B<-j>, B<--jobs> In pg_upgrade mode, number of simultaneous processes to use. This