• Tom Lane's avatar
    Fix behavior of ecpg's "EXEC SQL elif name". · 5f28b21e
    Tom Lane authored
    This ought to work much like C's "#elif defined(name)"; but the code
    implemented it in a way equivalent to endif followed by ifdef, so that
    it didn't matter whether any previous branch of the IF construct had
    succeeded.  Fix that; add some test cases covering elif and nested IFs;
    and improve the documentation, which also seemed a bit confused.
    
    AFAICS the code has been like this since the feature was added in 1999
    (commit b57b0e04).  So while it's surely wrong, there might be code
    out there relying on the current behavior.  Hence, don't back-patch
    into stable branches.  It seems all right to fix it in v13 though.
    
    Per report from Ashutosh Sharma.  Reviewed by Ashutosh Sharma and
    Michael Meskes.
    
    Discussion: https://postgr.es/m/CAE9k0P=dQk9X0cU2tN49S7a9tv733-e1pVdpB1P-pWJ5PdTktg@mail.gmail.com
    5f28b21e
preproc-define.c 3.35 KB