postgres.git / summary / log / commit / refs

commit    72c8a584bf7dd362227a3e0c23c39cc217f5753d
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Wed Nov 06 18:32:36 2013 +0000
First released in: 8.4.19, 9.0.15, 9.1.11

    Prevent creating window functions with default arguments.
    
    Insertion of default arguments doesn't work for window functions, which is
    likely to cause a crash at runtime if the implementation code doesn't check
    the number of actual arguments carefully.  It doesn't seem worth working
    harder than this for pre-9.2 branches.


src/backend/catalog/pg_proc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/backend/catalog/pg_proc.c b/src/backend/catalog/pg_proc.c index 3a2c817a8b3..45d224ef409 100644 --- a/src/backend/catalog/pg_proc.c +++ b/src/backend/catalog/pg_proc.c @@ -283,6 +283,12 @@ ProcedureCreate(const char *procedureName, } } + /* Guard against a case the planner doesn't handle yet */ + if (isWindowFunc && parameterDefaults != NIL) + ereport(ERROR, + (errcode(ERRCODE_FEATURE_NOT_SUPPORTED), + errmsg("window functions cannot have default arguments"))); + /* * All seems OK; prepare the data to be inserted into pg_proc. */ [parent: 2268d1c14c08]