Re: When is the MessageContext released?
От | Andy Fan |
---|---|
Тема | Re: When is the MessageContext released? |
Дата | |
Msg-id | CAKU4AWqsCRp-uZK4AJ8u+QfCjNk9LJ9KUExAhBW7t1XPga_1Lw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: When is the MessageContext released? (Andres Freund <andres@anarazel.de>) |
Список | pgsql-hackers |
Thanks you Andres for your time! this context is free with AllocSetReset rather than AllocSetDelete, that makes my breakpoint doesn't catch it.
On Wed, Feb 27, 2019 at 2:15 PM Andres Freund <andres@anarazel.de> wrote:
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
В списке pgsql-hackers по дате отправления: