• Tom Lane's avatar
    Fix portability issue in isolationtester grammar. · aa9eac45
    Tom Lane authored
    specparse.y and specscanner.l used "string" as a token name.  Now, bison
    likes to define each token name as a macro for the token code it assigns,
    which means those names are basically off-limits for any other use within
    the grammar file or included headers.  So names as generic as "string" are
    dangerous.  This is what was causing the recent failures on protosciurus:
    some versions of Solaris' sys/kstat.h use "string" as a field name.
    With late-model bison we don't see this problem because the token macros
    aren't defined till later (that is why castoroides didn't show the problem
    even though it's on the same machine).  But protosciurus uses bison 1.875
    which defines the token macros up front.
    
    This land mine has been there from day one; we'd have found it sooner
    except that protosciurus wasn't trying to run the isolation tests till
    recently.
    
    To fix, rename the token to "string_literal" which is hopefully less
    likely to collide with names used by system headers.  Back-patch to
    all branches containing the isolation tests.
    aa9eac45
specscanner.l 2.12 KB