• Tom Lane's avatar
    Make postgres.bki use the same literal-string syntax as postgresql.conf. · 97b61448
    Tom Lane authored
    The BKI file's string quoting conventions were previously quite weird,
    perhaps as a result of repurposing a function built to scan
    single-quoted strings to scan double-quoted ones.  Change to use the
    same rules as we use in GUC files, allowing some simplifications in
    genbki.pl and initdb.c.
    
    While at it, completely remove the backend's scanstr() function, which
    was essentially a duplicate of the string dequoting code in guc-file.l.
    Instead export that one (under a less generic name than it had) and let
    bootscanner.l use it.  Now we can clarify that scansup.c exists only to
    support the main lexer. We could alternatively have removed GUC_scanstr,
    but this way seems better since the previous arrangement could mislead
    a reader into thinking that scanstr() had something to do with the main
    lexer's handling of string literals.  Maybe it did once, but if so it
    was a long time ago.
    
    This patch does not bump catversion, since the initially-installed
    catalog contents don't change.  Note however that successful initdb
    after applying this patch will require up-to-date postgres.bki as well
    as postgres and initdb executables.
    
    In passing, remove a bunch of very-long-obsolete #include's in
    bootparse.y and bootscanner.l.
    
    John Naylor
    
    Discussion: https://postgr.es/m/CACPNZCtDpd18T0KATTmCggO2GdVC4ow86ypiq5ENff1VnauL8g@mail.gmail.com
    97b61448
bootscanner.l 3.18 KB