* Alvaro Herrera (alvhe...@2ndquadrant.com) wrote:
> Bruce Momjian wrote:
> > How would replicating DDL handle cases where the master and slave
> > servers have different major versions and the DDL is only supported by
> > the Postgres version on the master server?
> 
> Normally you would replicate between an older master and a newer
> replica, so this shouldn't be an issue.  I find it unlikely that we
> would de-support some syntax that works in an older version: it would
> break pg_dump, for one thing.

While I tend to agree with you that it's not something we're likely to
do, how would it break pg_dump?  We have plenty of version-specific
logic in pg_dump and we could certainly generate a different syntax in
a newer version than we did in an older version, if the newer server was
expecting something different.  We've always held that you should use
the version of pg_dump which match the server you are moving *to*, after
all.

> In other words I view cross-version replication as a mechanism to
> upgrade, not something that you would use permanently.  Once you
> finish upgrading, promote the newer server and ditch the old master.

I agree with this also.

> > If it would fail, does this limit the idea that logical replication
> > allows major version-different replication?
> 
> Not in my view, at least.

I'm all for having logical replication be a way to do major version
different replication (particularly for the purposes of upgrades), but
it shouldn't mean we can never de-support a given syntax.

As one example, we've discussed a few times removing certain table-level
privileges on the basis that they practically mean you own the table.
Perhaps that'll never actually happen, but if it does, logical
replication would need to deal with it.

        Thanks,

                Stephen

Attachment: signature.asc
Description: Digital signature

Reply via email to