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(select rolname 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/


Reply via email to