On Wed, Jun 17, 2020 at 12:27 PM Tom Lane <t...@sss.pgh.pa.us> wrote: > Which of the things I mentioned don't require writing WAL?
Writing hint bits and marking index tuples as killed do not write WAL unless checksums are enabled. > You're right that these are the same things that we already forbid on a > standby, for the same reason, so maybe it won't be as hard to identify > them as I feared. I wonder whether we should envision this as "demote > primary to standby" rather than an independent feature. See my comments on the nearby pg_demote thread. I think we want both. > >> I also think that putting such a thing into ALTER SYSTEM has got big > >> logical problems. > > > ... no right-thinking person would ever propose to > > change a feature that renders the system read-only in such a way that > > it was impossible to deactivate it. That would be nuts. > > My point was that putting this in ALTER SYSTEM paints us into a corner > as to what we can do with ALTER SYSTEM in the future: we won't ever be > able to make that do anything that would require writing WAL. And I > don't entirely believe your argument that that will never be something > we'd want to do. I think that depends a lot on how you view ALTER SYSTEM. I believe it would be reasonable to view ALTER SYSTEM as a catch-all for commands that make system-wide state changes, even if those changes are not all of the same kind as each other; some might be machine-local, and others cluster-wide; some WAL-logged, and others not. I don't think it's smart to view ALTER SYSTEM through a lens that boxes it into only editing postgresql.auto.conf; if that were so, we ought to have called it ALTER CONFIGURATION FILE or something rather than ALTER SYSTEM. For that reason, I do not see the choice of syntax as painting us into a corner. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company