• Tom Lane's avatar
    Remove broken code that tried to handle OVERLAPS with a single argument. · a222f7fd
    Tom Lane authored
    The SQL standard says that OVERLAPS should have a two-element row
    constructor on each side.  The original coding of OVERLAPS support in
    our grammar attempted to extend that by allowing a single-element row
    constructor, which it internally duplicated ... or tried to, anyway.
    But that code has certainly not worked since our List infrastructure was
    rewritten in 2004, and I'm none too sure it worked before that.  As it
    stands, it ends up building a List that includes itself, leading to
    assorted undesirable behaviors later in the parser.
    
    Even if it worked as intended, it'd be a bit evil because of the
    possibility of duplicate evaluation of a volatile function that the user
    had written only once.  Given the lack of documentation, test cases, or
    complaints, let's just get rid of the idea and only support the standard
    syntax.
    
    While we're at it, improve the error cursor positioning for the
    wrong-number-of-arguments errors, and inline the makeOverlaps() function
    since it's only called in one place anyway.
    
    Per bug #9227 from Joshua Yanovski.  Initial patch by Joshua Yanovski,
    extended a bit by me.
    a222f7fd
gram.y 367 KB