On Fri, Dec 18, 2015 at 9:52 AM, Robert Treat <r...@xzilla.net> wrote:
> On Thu, Dec 17, 2015 at 4:31 PM, Robert Haas <robertmh...@gmail.com> wrote:
>> On Wed, Dec 16, 2015 at 10:48 PM, Jim Nasby <jim.na...@bluetreble.com> wrote:
>>> IIUC, that means supporting backwards compat. GUCs for 10 years, which seems
>>> a bit excessive. Granted, that's about the worse-case scenario for what I
>>> proposed (ie, we'd still be supporting 8.0 stuff right now).
>> Not to me.  GUCs like array_nulls don't really cost much - there is no
>> reason to be in a hurry about removing them that I can see.
> Perhaps not with rock solid consistency, but we've certainly used the
> argument of the "not a major major version release" to shoot down
> introducing incompatible features / improvements (protocol changes
> come to mind), which further lends credence to Jim's point about
> people expecting backwards incompatible breakage to be in a major
> major version changes.

My memory is that Tom usually argues pretty vigorously against the
idea that there's anything special about a first-digit bump in terms
of incompatibilities.  But your memory may have a longer reach than

> Given the overhead from a development standpoint is low, whats the
> better user experience: delay removal for as long as possible (~10
> years) to narrow the likely of people being affected, or make such
> changes as visible as possible (~6+ years) so that people have clear
> expectations / lines of demarcation?

IMHO, it's almost hopeless to expect users to prepare for incompatible
changes we want to make.  When we try to force it, as we did with
standard_conforming_strings or the 8.3-vintage casting changes, we
cause a lot of user pain and that's about it.  People don't say "ah,
these changes are coming, I need to adjust my app to be safe in this
new world"; instead, they say "crap, I can't upgrade, PostgreSQL
hackers suck".  We spend our days and nights worrying about this
stuff, but real users don't.  They just got knocked over when the
change hits.  Or the people who understand that the problem is coming
are in a different group than the people who have to fix it, so it
doesn't get fixed.  Or whatever.

My experience is that it is very common for users to upgrade across a
whole series of releases at the same time.  People don't upgrade from
8.3 to 8.4 and then to 9.0, or even from 8.3 to 9.0 to 9.2.  I mean,
some do.  But people doing things like 8.2 -> 9.3 is not that
uncommon, at least in my experience with EnterpriseDB customers.
That's why we support releases for five full years, right?  So that
people don't necessarily have to upgrade more than about that often.
Ideally they'd upgrade about every 4 years, so that they get off the
oldest supported release before it actually drops out of support, but
for various reasons it often takes longer than that, and their current
version is out of support before they get around to upgrading.  We can
wag our tongues and cluck at those people, but when we're quick to
pull the trigger on removing backward compatibility hacks, we actually
make the problem worse, not better.  Now people stay on the old
versions even longer, because they can't upgrade until they fix their

Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:

Reply via email to