aboutsummaryrefslogtreecommitdiff
path: root/src/include/executor/functions.h
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2011-03-24 20:30:14 -0400
committerTom Lane <tgl@sss.pgh.pa.us>2011-03-24 20:30:23 -0400
commit27dc7e240bfd230ee1315cc00577a6ed72aff94a (patch)
tree2100db2f29740b01e27d679b6ac8eb2fc313a715 /src/include/executor/functions.h
parenta432e2783bb69fb68461ed2bcc460e2876fcc68d (diff)
downloadpostgresql-27dc7e240bfd230ee1315cc00577a6ed72aff94a.tar.gz
postgresql-27dc7e240bfd230ee1315cc00577a6ed72aff94a.zip
Fix handling of collation in SQL-language functions.
Ensure that parameter symbols receive collation from the function's resolved input collation, and fix inlining to behave properly. BTW, this commit lays about 90% of the infrastructure needed to support use of argument names in SQL functions. Parsing of parameters is now done via the parser-hook infrastructure ... we'd just need to supply a column-ref hook ...
Diffstat (limited to 'src/include/executor/functions.h')
-rw-r--r--src/include/executor/functions.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/include/executor/functions.h b/src/include/executor/functions.h
index e725b24be20..b926e99cbbd 100644
--- a/src/include/executor/functions.h
+++ b/src/include/executor/functions.h
@@ -17,9 +17,18 @@
#include "nodes/execnodes.h"
#include "tcop/dest.h"
+/* This struct is known only within executor/functions.c */
+typedef struct SQLFunctionParseInfo *SQLFunctionParseInfoPtr;
extern Datum fmgr_sql(PG_FUNCTION_ARGS);
+extern SQLFunctionParseInfoPtr prepare_sql_fn_parse_info(HeapTuple procedureTuple,
+ Node *call_expr,
+ Oid inputCollation);
+
+extern void sql_fn_parser_setup(struct ParseState *pstate,
+ SQLFunctionParseInfoPtr pinfo);
+
extern bool check_sql_fn_retval(Oid func_id, Oid rettype,
List *queryTreeList,
bool *modifyTargetList,