• Peter Eisentraut's avatar
    Remove objname/objargs split for referring to objects · 8b6d6cf8
    Peter Eisentraut authored
    In simpler times, it might have worked to refer to all kinds of objects
    by a list of name components and an optional argument list.  But this
    doesn't work for all objects, which has resulted in a collection of
    hacks to place various other nodes types into these fields, which have
    to be unpacked at the other end.  This makes it also weird to represent
    lists of such things in the grammar, because they would have to be lists
    of singleton lists, to make the unpacking work consistently.  The other
    problem is that keeping separate name and args fields makes it awkward
    to deal with lists of functions.
    
    Change that by dropping the objargs field and have objname, renamed to
    object, be a generic Node, which can then be flexibly assigned and
    managed using the normal Node mechanisms.  In many cases it will still
    be a List of names, in some cases it will be a string Value, for types
    it will be the existing Typename, for functions it will now use the
    existing ObjectWithArgs node type.  Some of the more obscure object
    types still use somewhat arbitrary nested lists.
    Reviewed-by: default avatarJim Nasby <Jim.Nasby@BlueTreble.com>
    Reviewed-by: default avatarMichael Paquier <michael.paquier@gmail.com>
    8b6d6cf8
extension.c 91.9 KB