Re: When is the MessageContext released?

From: Andres Freund <andres(at)anarazel(dot)de>
To: Andy Fan <zhihui(dot)fan1213(at)gmail(dot)com>
Cc: pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: When is the MessageContext released?
Date: 2019-02-27 06:15:44
Message-ID: 20190227061544.kuynkcteqiiot6al@alap3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 2019-02-27 14:08:47 +0800, Andy Fan wrote:
> Hi :
> I run a query like "select * from t" and set the break like this:
>
> break exec_simple_query
> break MemoryContextDelete
> commands
> p context->name
> c
> end
>
> I can see most of the MemoryContext is relased, but never MessageContext,
> when will it be released?

It's released above exec_simple_query, as it actually contains the data
that lead us to call exec_simple_query(). See the main for loop in
PostgresMain():

/*
* Release storage left over from prior query cycle, and create a new
* query input buffer in the cleared MessageContext.
*/
MemoryContextSwitchTo(MessageContext);
MemoryContextResetAndDeleteChildren(MessageContext);

Greetings,

Andres Freund

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Michael Paquier 2019-02-27 06:24:01 Re: psql display of foreign keys
Previous Message Richard Guo 2019-02-27 06:14:16 Re: NOT IN subquery optimization