Re: pgsql: Fix progress reporting of CLUSTER / VACUUM FULL

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: pgsql: Fix progress reporting of CLUSTER / VACUUM FULL
Дата
Msg-id 19795.1568400476@sss.pgh.pa.us
обсуждение исходный текст
Ответ на pgsql: Fix progress reporting of CLUSTER / VACUUM FULL  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Ответы Re: pgsql: Fix progress reporting of CLUSTER / VACUUM FULL
Re: pgsql: Fix progress reporting of CLUSTER / VACUUM FULL
Список pgsql-committers
Alvaro Herrera <alvherre@alvh.no-ip.org> writes:
> Fix progress reporting of CLUSTER / VACUUM FULL

Not a new problem of this patch, exactly, but:
 
 /* Reindex options */
 #define REINDEXOPT_VERBOSE 1 << 0  /* print progress info */
+#define REINDEXOPT_REPORT_PROGRESS 1 << 1  /* report pgstat progress */

Surely these macro definitions are incredibly dangerous due to their
lack of parentheses.

I'd initially thought that we already had bugs in existing usages like

    if (options & REINDEXOPT_VERBOSE)

After consulting a nearby C reference I see that we're accidentally
saved by << having higher priority than &, but this is not safely-
maintainable code.  Expressions like "~REINDEXOPT_VERBOSE" would not
do what one expects.

            regards, tom lane



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

Предыдущее
От: Alvaro Herrera
Дата:
Сообщение: pgsql: Fix progress reporting of CLUSTER / VACUUM FULL
Следующее
От: Alvaro Herrera
Дата:
Сообщение: Re: pgsql: Fix progress reporting of CLUSTER / VACUUM FULL