Header And Logo

PostgreSQL
| The world's most advanced open source database.

parse_agg.h

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------------
00002  *
00003  * parse_agg.h
00004  *    handle aggregates and window functions in parser
00005  *
00006  * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group
00007  * Portions Copyright (c) 1994, Regents of the University of California
00008  *
00009  * src/include/parser/parse_agg.h
00010  *
00011  *-------------------------------------------------------------------------
00012  */
00013 #ifndef PARSE_AGG_H
00014 #define PARSE_AGG_H
00015 
00016 #include "parser/parse_node.h"
00017 
00018 extern void transformAggregateCall(ParseState *pstate, Aggref *agg,
00019                        List *args, List *aggorder,
00020                        bool agg_distinct);
00021 extern void transformWindowFuncCall(ParseState *pstate, WindowFunc *wfunc,
00022                         WindowDef *windef);
00023 
00024 extern void parseCheckAggregates(ParseState *pstate, Query *qry);
00025 
00026 extern void build_aggregate_fnexprs(Oid *agg_input_types,
00027                         int agg_num_inputs,
00028                         Oid agg_state_type,
00029                         Oid agg_result_type,
00030                         Oid agg_input_collation,
00031                         Oid transfn_oid,
00032                         Oid finalfn_oid,
00033                         Expr **transfnexpr,
00034                         Expr **finalfnexpr);
00035 
00036 #endif   /* PARSE_AGG_H */