gooderp18绿色标准版
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

74 行
2.4KB

  1. /*-------------------------------------------------------------------------
  2. *
  3. * parse_func.h
  4. *
  5. *
  6. *
  7. * Portions Copyright (c) 1996-2019, PostgreSQL Global Development Group
  8. * Portions Copyright (c) 1994, Regents of the University of California
  9. *
  10. * src/include/parser/parse_func.h
  11. *
  12. *-------------------------------------------------------------------------
  13. */
  14. #ifndef PARSER_FUNC_H
  15. #define PARSER_FUNC_H
  16. #include "catalog/namespace.h"
  17. #include "parser/parse_node.h"
  18. /* Result codes for func_get_detail */
  19. typedef enum
  20. {
  21. FUNCDETAIL_NOTFOUND, /* no matching function */
  22. FUNCDETAIL_MULTIPLE, /* too many matching functions */
  23. FUNCDETAIL_NORMAL, /* found a matching regular function */
  24. FUNCDETAIL_PROCEDURE, /* found a matching procedure */
  25. FUNCDETAIL_AGGREGATE, /* found a matching aggregate function */
  26. FUNCDETAIL_WINDOWFUNC, /* found a matching window function */
  27. FUNCDETAIL_COERCION /* it's a type coercion request */
  28. } FuncDetailCode;
  29. extern Node *ParseFuncOrColumn(ParseState *pstate, List *funcname, List *fargs,
  30. Node *last_srf, FuncCall *fn, bool proc_call,
  31. int location);
  32. extern FuncDetailCode func_get_detail(List *funcname,
  33. List *fargs, List *fargnames,
  34. int nargs, Oid *argtypes,
  35. bool expand_variadic, bool expand_defaults,
  36. Oid *funcid, Oid *rettype,
  37. bool *retset, int *nvargs, Oid *vatype,
  38. Oid **true_typeids, List **argdefaults);
  39. extern int func_match_argtypes(int nargs,
  40. Oid *input_typeids,
  41. FuncCandidateList raw_candidates,
  42. FuncCandidateList *candidates);
  43. extern FuncCandidateList func_select_candidate(int nargs,
  44. Oid *input_typeids,
  45. FuncCandidateList candidates);
  46. extern void make_fn_arguments(ParseState *pstate,
  47. List *fargs,
  48. Oid *actual_arg_types,
  49. Oid *declared_arg_types);
  50. extern const char *funcname_signature_string(const char *funcname, int nargs,
  51. List *argnames, const Oid *argtypes);
  52. extern const char *func_signature_string(List *funcname, int nargs,
  53. List *argnames, const Oid *argtypes);
  54. extern Oid LookupFuncName(List *funcname, int nargs, const Oid *argtypes,
  55. bool missing_ok);
  56. extern Oid LookupFuncWithArgs(ObjectType objtype, ObjectWithArgs *func,
  57. bool missing_ok);
  58. extern void check_srf_call_placement(ParseState *pstate, Node *last_srf,
  59. int location);
  60. #endif /* PARSE_FUNC_H */
上海开阖软件有限公司 沪ICP备12045867号-1