Re: pg_dump versus ancient server versions
Andres Freund <andres@anarazel.de>
Hi, On 2021-12-02 11:01:47 +0100, Peter Eisentraut wrote: > - The policy for other client-side tools (list at [0]) is less clear > and arguably less important. I suggest we focus on pg_dump and psql > first, and then we can decide for the rest whether they want to > match a longer window, a shorter window, or a different policy > altogether (e.g., ecpg). I think we should at least include pg_upgrade in this as well, it's pretty closely tied to at least pg_dump. > * pg_dump and psql will maintain compatibility with servers at least > ten major releases back. Personally I think that's too long... It boils down keeping branches buildable for ~15 years after they've been released. That strikes me as pretty far into diminishing-returns, and steeply increasing costs, territory. I realize it's more complicated for users, but a policy based on supporting a certain number of out-of-support branches calculated from the newest major version is more realistic. I'd personally go for something like newest-major - 7 (i.e. 2 extra releases), but I realize that others think it's worthwhile to support a few more. I think there's a considerable advantage of having one cutoff date across all branches. That's not to say we'd remove support for older versions from back branches. Just that we don't ever consider them supported (or test them) once below the cutoff. > I use the count of major releases here instead of some number of > years, as was previously discussed, for two reasons. First, it makes > computing the cutoff easier, because you are not bothered by whether > some old release was released a few weeks before or after the > equivalent date in the current year for the new release. Second, > there is no ambiguity about what happens during the lifetime of a > major release: If major release $NEW supports major release $OLD at > the time of $NEW's release, then that stays the same for the whole > life of $NEW; we don't start dropping support for $OLD in $NEW.5 > because a year has passed. Makes sense. > * We keep old major release branches buildable as long as a new major > release that has support for that old release is under support. > Buildable for this purpose means just enough that you can use it to > test pg_dump and psql. This probably includes being able to run make > installcheck and use pg_dump and psql against the regression database. I think we should explicitly limit the number of platforms we care about for this purpose. I don't think we should even try to keep 8.2 compile on AIX or whatnot. Greetings, Andres Freund
Commits
-
Remove psql support for server versions preceding 9.2.
- cf0cab868aa4 15.0 landed
-
Clean up some more freshly-dead code in pg_dump and pg_upgrade.
- c49d926833fa 15.0 landed
-
Remove pg_dump's --no-synchronized-snapshots switch.
- 2a712066d058 15.0 landed
-
Remove pg_upgrade support for upgrading from pre-9.2 servers.
- e469f0aaf3c5 15.0 landed
-
Remove pg_dump/pg_dumpall support for dumping from pre-9.2 servers.
- 30e7c175b81d 15.0 landed
-
Suppress -Warray-bounds warning in 9.2's xlog.c.
- 985c8de212fa 9.2 (unreleased) landed
-
Suppress -Wformat-overflow warnings in 9.2's xml.c.
- 3f9700acb238 9.2 (unreleased) landed
-
Disable -Wsometimes-uninitialized warnings in the 9.2 branch.
- cea316881f1f 9.2 (unreleased) landed
-
Fix function return type confusion
- 468773837bed 9.2 (unreleased) landed
-
Fix compiler warning
- 98274e8fe7a0 9.2 (unreleased) landed
- fcf1f27fe89b 9.3 (unreleased) landed
-
Silence another gcc 11 warning.
- 265b96a96af2 9.2 (unreleased) landed
- a1fe82d98745 9.3 (unreleased) landed
- 0af208402d0a 9.4 (unreleased) landed
-
Suppress uninitialized-variable warning in guc.c.
- 60ca4eec8dc7 9.5 (unreleased) landed
-
Suppress -Warray-parameter warnings in pgcrypto/sha2.c.
- d754ccc1ec9f 9.2 (unreleased) landed
- 6eb7efdf0f74 9.3 (unreleased) landed
- 25c8e5ef077e 9.4 (unreleased) landed
- 0d9b02b33919 9.5 (unreleased) landed
- 116a509e09ac 9.6 (unreleased) landed
-
Reformat imath.c macro to remove -Wmisleading-indentation warnings.
- a86312362da4 9.2 (unreleased) landed
- 9610c7158409 9.3 (unreleased) landed
- 5eb73fc9347d 9.4 (unreleased) landed
- 4cb389a048eb 9.5 (unreleased) landed
- f420f24c0a5d 9.6 (unreleased) landed
- bbbf22cf3351 11.15 landed
- 9d73dac127d8 10.20 landed
-
Clean up compilation warnings coming from PL/Perl with clang-12~
- ebd952f3f453 9.2 (unreleased) landed
- 580261836c11 9.3 (unreleased) landed
- 3fff9b6c1856 9.4 (unreleased) landed
- e51e8fb9f433 9.5 (unreleased) landed
- c16a78147ca1 9.6 (unreleased) landed
-
Make ecpg's rjulmdy() and rmdyjul() agree with their declarations.
- 87671beecf53 9.2 (unreleased) landed
- b30e23fe588b 9.3 (unreleased) landed
- 9ae132dfe373 9.4 (unreleased) landed
-
Use -Wno-format-truncation and -Wno-stringop-truncation, if available.
- 276c017f12fe 9.2 (unreleased) landed
-
Make pg_upgrade's test.sh less chatty.
- a4061eeaf34a 9.2 (unreleased) landed
- 119b9d060e8f 9.3 (unreleased) landed
-
Add checks for valid multibyte character length in UtfToLocal, LocalToUtf.
- 70c64135d0a1 9.2 (unreleased) landed
- 404d987646e3 9.3 (unreleased) landed
-
Use return instead of exit() in configure
- fed9cf2cb9ef 9.2 (unreleased) landed
- f24374bce687 9.3 (unreleased) landed
- 47fca011b88a 9.4 (unreleased) landed
- 1c0cf52b39ca 10.0 cited
-
Add support for Visual Studio 2019 in build scripts
- 2b1394fc2b52 13.0 cited