On 2014-06-18 15:33:58 +0530, Pavan Deolasee wrote:
> On Wed, Jun 18, 2014 at 12:31 PM, Pavan Deolasee <pavan.deolasee@gmail.com>
> wrote:
>
> >
> > Attached patch fixes this for the HEAD. But this needs to be fixed all
> >> the way to 9.1 when unlogged tables were first introduced.
> >>
> >
> >
> I'd forgotten to update the comment in the code. Fixed in the attached
> version.
>
> Thanks,
> Pavan
>
> --
> Pavan Deolasee
> http://www.linkedin.com/in/pavandeolasee
> diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
> index c070278..e0b9aff 100644
> --- a/src/backend/storage/buffer/bufmgr.c
> +++ b/src/backend/storage/buffer/bufmgr.c
> @@ -1221,11 +1221,12 @@ BufferSync(int flags)
> ResourceOwnerEnlargeBuffers(CurrentResourceOwner);
>
> /*
> - * Unless this is a shutdown checkpoint, we write only permanent, dirty
> - * buffers. But at shutdown or end of recovery, we write all dirty
> - * buffers.
> + * If a force checkpoint or at shutdown or end of recovery, we write all
> + * dirty buffers, otherwise we only write permanent buffers
> */
> - if (!((flags & CHECKPOINT_IS_SHUTDOWN) || (flags & CHECKPOINT_END_OF_RECOVERY)))
> + if (!((flags & CHECKPOINT_IS_SHUTDOWN) ||
> + (flags & CHECKPOINT_END_OF_RECOVERY) ||
> + (flags & CHECKPOINT_FORCE)))
> mask |= BM_PERMANENT;
Won't that significantly regress manually issued CHECKPOINT;s?
Greetings,
Andres Freund
--
Andres Freund http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Training & Services