• Tom Lane's avatar
    Rationalize handling of array type names in bootstrap data. · 9ffcccdb
    Tom Lane authored
    Formerly, Catalog.pm turned a C array type declaration in the catalog
    header files into a SQL type, e.g., 'foo[]'.  Along the way, genbki.pl
    turned this into '_foo' for the purpose of type lookups, but wrote 'foo[]'
    to postgres.bki.  During bootstrap, bootscanner.l had to have a special
    case rule to tokenize this, and then MapArrayTypeName() would turn 'foo[]'
    into '_foo' one more time.
    
    This seems unnecessarily complicated, especially since nobody cares that
    much about the readability of postgres.bki.  Instead, make Catalog.pm
    convert the C declaration into '_foo' to start with, and preserve that
    representation of the type name throughout bootstrap data processing.
    Then rip out the special-case code in bootscanner.l and bootstrap.c.
    
    This changes postgres.bki to the extent that array fields are now
    declared like
      proconfig = _text ,
    rather than
      proconfig = text[] ,
    
    No documentation update, since the SGML docs didn't mention any of this
    in the first place, and it's all pretty transparent to writers of
    catalog header files anyway.
    
    John Naylor
    
    Discussion: https://postgr.es/m/CAJVSVGUNao=-Q2-vAN3PYcdF5tnL5JAHwGwzZGuYHtq+Mk_9ng@mail.gmail.com
    9ffcccdb
Catalog.pm 9.34 KB