Re: pgsql: Fix progress reporting of CLUSTER / VACUUM FULL
От | Alvaro Herrera |
---|---|
Тема | Re: pgsql: Fix progress reporting of CLUSTER / VACUUM FULL |
Дата | |
Msg-id | 20190913193132.GA18625@alvherre.pgsql обсуждение исходный текст |
Ответ на | Re: pgsql: Fix progress reporting of CLUSTER / VACUUM FULL (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-committers |
On 2019-Sep-13, Tom Lane wrote: > 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. Fixed back to 9.5, where this macro appeared. I was unable to come up with a way to search for other occurrences of the same problem :-( Thanks, -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-committers по дате отправления: