Re: pgsql: Cache by-reference missing values in a long lived context

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: pgsql: Cache by-reference missing values in a long lived context
Дата
Msg-id 20230826162541.4cny4fb6z2cvpy4j@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: pgsql: Cache by-reference missing values in a long lived context  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: pgsql: Cache by-reference missing values in a long lived context  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-committers
On 2023-Aug-25, Tom Lane wrote:

> Another point that I wasn't thinking of yesterday is that 11 is
> still expected to compile on pre-C99 compilers.  I'm not sure
> to what extent we are still able to test that -- my old animals
> have all gone to buildfarm heaven, although I see that Noah's
> AIX menagerie is still soldiering on.  Were we relying on "{ 0 }"
> anywhere else pre-v12?

We have a few occurrences of {0} in initializations in pg11, so it
should work.

$ git grep '{\s*0\s*}' -- *.c

contrib/pgrowlocks/pgrowlocks.c:                    values[Atnum_xids] = "{0}";
contrib/pgrowlocks/pgrowlocks.c:                    values[Atnum_pids] = "{0}";
contrib/pgstattuple/pgstatapprox.c:    output_type stat = {0};
contrib/pgstattuple/pgstattuple.c:    pgstattuple_type stat = {0};
contrib/pgstattuple/pgstattuple.c:    pgstattuple_type stat = {0};
src/backend/access/transam/xloginsert.c:        XLogRecordBlockCompressHeader cbimg = {0};
src/backend/commands/explain.c:    JitInstrumentation ji = {0};
src/backend/commands/explain.c:    HashInstrumentation hinstrument = {0};
src/backend/commands/tablecmds.c:    static Node bogus_marker = {0}; /* marks conflicting defaults */
src/backend/executor/execExpr.c:    ExprEvalStep scratch = {0};
src/backend/executor/execExpr.c:    ExprEvalStep scratch = {0};
src/backend/executor/execExpr.c:    ExprEvalStep scratch = {0};
src/backend/executor/execExpr.c:    ExprEvalStep scratch = {0};
src/backend/executor/execExpr.c:    ExprEvalStep scratch = {0};
src/backend/executor/execExpr.c:    ExprEvalStep scratch = {0};
src/backend/executor/execExpr.c:    ExprEvalStep scratch2 = {0};
src/backend/executor/execExpr.c:    ExprEvalStep scratch = {0};
src/backend/executor/execExpr.c:    ExprEvalStep scratch = {0};
src/backend/regex/regcomp.c:            /* postpone everything else pending possible {0} */
src/backend/regex/regcomp.c:    /* annoying special case:  {0} or {0,0} cancels everything */
src/backend/utils/adt/jsonfuncs.c:        JsValue        field = {0};
src/backend/utils/adt/jsonfuncs.c:    JsValue        jsv = {0};
src/backend/utils/adt/numeric.c:static const NumericDigit const_zero_data[1] = {0};
src/bin/pg_dump/pg_dump.c:                      "CASE WHEN pol.polroles = '{0}' THEN NULL ELSE "
src/bin/psql/describe.c:                          "    || CASE WHEN polroles <> '{0}' THEN\n"
src/bin/psql/describe.c:                          "    || CASE WHEN polroles <> '{0}' THEN\n"
src/bin/psql/describe.c:                              "  CASE WHEN pol.polroles = '{0}' THEN NULL ELSE
pg_catalog.array_to_string(array(selectrolname from pg_catalog.pg_roles where oid = any (pol.polroles) order by 1),',')
END,\n"
src/interfaces/ecpg/ecpglib/prepare.c:static stmtCacheEntry stmtCacheEntries[16384] = {{0, {0}, 0, 0, 0}};

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/



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

Предыдущее
От: Michael Paquier
Дата:
Сообщение: pgsql: Generate new LOG for "trust" connections under log_connections
Следующее
От: Tom Lane
Дата:
Сообщение: Re: pgsql: Cache by-reference missing values in a long lived context