• Tom Lane's avatar
    Declare lead() and lag() using anycompatible not anyelement. · 5c292e6b
    Tom Lane authored
    This allows use of a "default" expression that doesn't slavishly
    match the data column's type.  Formerly you got something like
    "function lag(numeric, integer, integer) does not exist", which
    is not just unhelpful but actively misleading.
    
    The SQL spec suggests that the default should be coerced to the data
    column's type, but this implementation instead chooses the common
    supertype, which seems at least as reasonable.
    
    (Note: I took the opportunity to run "make reformat-dat-files" on
    pg_proc.dat, so this commit includes some cosmetic changes to
    recently-added entries that aren't related to lead/lag.)
    
    Vik Fearing
    
    Discussion: https://postgr.es/m/77675130-89da-dab1-51dd-492c93dcf5d1@postgresfriends.org
    5c292e6b
catversion.h 2.53 KB