Re: Where to call SetQuerySnapshot

Поиск
Список
Период
Сортировка
От Joe Conway
Тема Re: Where to call SetQuerySnapshot
Дата
Msg-id 3DA324DF.7070106@joeconway.com
обсуждение исходный текст
Ответ на Where to call SetQuerySnapshot  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Tom Lane wrote:
> I did this and ended up with a rather long list of statement types that
> might need a snapshot:
> 
>                 elog(DEBUG2, "ProcessUtility");
> 
>                 /* set snapshot if utility stmt needs one */
>                 /* XXX maybe cleaner to list those that shouldn't set one? */
>                 if (IsA(utilityStmt, AlterTableStmt) ||
>                     IsA(utilityStmt, ClusterStmt) ||
>                     IsA(utilityStmt, CopyStmt) ||
>                     IsA(utilityStmt, ExecuteStmt) ||
>                     IsA(utilityStmt, ExplainStmt) ||
>                     IsA(utilityStmt, IndexStmt) ||
>                     IsA(utilityStmt, PrepareStmt) ||
>                     IsA(utilityStmt, ReindexStmt))
>                     SetQuerySnapshot();
> 
> (Anything that can call the planner or might create entries in
> functional indexes had better set a snapshot, thus stuff like
> ReindexStmt has the issue.)
> 
> I wonder if we should turn this around, and set a snapshot for all
> utility statements that can't show cause why they don't need one.
> Offhand, TransactionStmt, FetchStmt, and VariableSet/Show/Reset
> might be the only ones that need be excluded.  Comments?

It looks like an exclusion list would be easier to read and maintain.

Joe




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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Where to call SetQuerySnapshot
Следующее
От: Peter Eisentraut
Дата:
Сообщение: Re: v7.2.3 - tag'd, packaged ... need it checked ...