Custom GUCs still a bit broken

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Custom GUCs still a bit broken
Дата
Msg-id 4B577E9F.8000505@dunslane.net
обсуждение исходный текст
Ответы Re: Custom GUCs still a bit broken  (Bruce Momjian <bruce@momjian.us>)
Список pgsql-hackers
It seems like Custom GUCs are still in need of some work, as shown in my 
recent email. In particular, they are not transaction safe - if a 
transaction attempts to do DefineCustomFooVariable() and that 
transaction aborts, the placeholder setting that it used is already gone 
by the time it tries to roll back GUC settings. I think this code at the 
end of define_custom_variable()
       /*        * Free up as much as we conveniently can of the placeholder   structure        * (this neglects any
stackitems...)        */       set_string_field(pHolder, pHolder->variable, NULL);       set_string_field(pHolder,
&pHolder->reset_val,NULL);
 
       free(pHolder);


needs to be removed and instead we need to save pHolder in a list along 
with the GUC level, to be processed later by AtEOXact_GUC(), which would 
do the right thing according to whether or not it had a commit or an abort.

I want to get this fixed before we consider custom settings for plperl 
that have possible security implications.

Thoughts?

cheers

andrew




В списке pgsql-hackers по дате отправления:

Предыдущее
От: Greg Smith
Дата:
Сообщение: Re: MonetDB test says that PostgreSQL often has errors or missing results
Следующее
От: Jeff Davis
Дата:
Сообщение: Re: Listen / Notify - what to do when the queue is full