On Mon, Apr 11, 2016 at 11:39 AM, Justin Clift <justin@postgresql.org> wrote:
> Moving over a conversation from the pgsql-advocacy mailing list. In it
> Simon (CC'd) raised the issue of potentially creating a backwards-compatibility
> breaking release at some point in the future, to deal with things that
> might have no other solution (my wording).
>
> Relevant part of that thread there for reference:
>
> http://www.postgresql.org/message-id/CANP8+jLtk1NtaJyXc=hAqX=0k+ku4zfavgVBKfs+_sOr9hepNQ@mail.gmail.com
>
> Simon included a short starter list of potentials which might be in
> that category:
>
> * SQL compliant identifiers
> * Remove RULEs
> * Change recovery.conf
> * Change block headers
> * Retire template0, template1
> * Optimise FSM
> * Add heap metapage
> * Alter tuple headers
> et al
>
> This still is better placed on -hackers though, so lets have the
> conversation here to figure out if a "backwards compatibility breaking"
> release really is needed or not.
A couple of points here:
*) I don't think having a version number that starts with 10 instead
of 9 magically fixes backwards compatibility problems and I think
that's a dangerous precedent to set unless we're willing to fork
development and support version 9 indefinitely including major release
versions.
*) Compatibility issues at the SQL level have to be taken much more
seriously than other things (like internal layouts or .conf issues).
*) We need to do an honest cost benefit analysis before breaking
things. Code refactors placed on your users puts an enormous cost
that is often underestimated. I have some fairly specific examples of
the costs related to the text cast removal for example. It's not a
pretty picture.
merlin