Make parseNodeString() C idiom compatible with Visual Studio 2015.
authorNoah Misch <noah@leadboat.com>
Wed, 14 Jun 2023 12:31:54 +0000 (05:31 -0700)
committerNoah Misch <noah@leadboat.com>
Wed, 14 Jun 2023 12:31:54 +0000 (05:31 -0700)
commitf9f31aa91f82df863a35354893978e1937863d7c
treebd9df41f2490bb74f63c54158dc91feea7cdfaf7
parent4327f6c7480fea9348ea6825a9d38a71b2ef8785
Make parseNodeString() C idiom compatible with Visual Studio 2015.

Between v15 and now, this function's "else if" chain grew from 252 lines
to 592 lines, exceeding a compiler limit that manifests as "fatal error
C1026: parser stack overflow, program too complex (compiling source file
src/backend/nodes/readfuncs.c)".  Use "if (...)  return ...;" instead.

Reviewed by Tom Lane, Peter Eisentraut and Michael Paquier.  Not all
reviewers endorse this.

Discussion: http://postgr.es/m/20230607185458.GA1334487@rfd.leadboat.com
src/backend/nodes/gen_node_support.pl
src/backend/nodes/readfuncs.c