Re: SLRU statistics
От | Tomas Vondra |
---|---|
Тема | Re: SLRU statistics |
Дата | |
Msg-id | 20200513152339.s7ossibhr6wai4p7@development обсуждение исходный текст |
Ответ на | Re: SLRU statistics (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
On Wed, May 13, 2020 at 11:01:47AM -0400, Tom Lane wrote: >Tomas Vondra <tomas.vondra@2ndquadrant.com> writes: >> On Wed, May 13, 2020 at 10:26:39AM -0400, Tom Lane wrote: >>> Why is that necessary? A static variable is defined by C to start off >>> as zeroes. > >> But is it a static variable? It's not declared as 'static' but maybe we >> can assume it inits to zeroes anyway? I see we do that for >> BgWriterStats. > >Sorry, by "static" I meant "statically allocated", not "private to >this module". I'm sure the C standard has some more precise terminology >for this distinction, but I forget what it is. > Ah, I see. I'm no expert in reading C standard (or any other standard), but a quick google search yielded this section of C99 standard: ------------------------------------------------------------------------- If an object that has static storage duration is not initialized explicitly, then: - if it has pointer type, it is initialized to a null pointer; - if it has arithmetic type, it is initialized to (positive or unsigned) zero; - if it is an aggregate, every member is initialized (recursively) according to these rules; - if it is au nion, the first named member is initialized (recursively) according to these rules ------------------------------------------------------------------------- I assume the SLRU variable counts as aggregate, with members having arithmetic types. In which case it really should be initialized to 0. regards -- Tomas Vondra http://www.2ndQuadrant.com PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
В списке pgsql-hackers по дате отправления: