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
|
Список | 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 по дате отправления: