mirror of
https://github.com/postgres/postgres.git
synced 2026-01-29 12:02:15 +03:00
Infrastructure for deducing Param types from context, in the same way
that the types of untyped string-literal constants are deduced (ie, when coerce_type is applied to 'em, that's what the type must be). Remove the ancient hack of storing the input Param-types array as a global variable, and put the info into ParseState instead. This touches a lot of files because of adjustment of routine parameter lists, but it's really not a large patch. Note: PREPARE statement still insists on exact specification of parameter types, but that could easily be relaxed now, if we wanted to do so.
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: parse_oper.h,v 1.24 2003/04/08 23:20:04 tgl Exp $
|
||||
* $Id: parse_oper.h,v 1.25 2003/04/29 22:13:11 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -15,7 +15,8 @@
|
||||
#define PARSE_OPER_H
|
||||
|
||||
#include "access/htup.h"
|
||||
#include "nodes/parsenodes.h"
|
||||
#include "parser/parse_node.h"
|
||||
|
||||
|
||||
typedef HeapTuple Operator;
|
||||
|
||||
@@ -50,8 +51,10 @@ extern Oid oprid(Operator op);
|
||||
extern Oid oprfuncid(Operator op);
|
||||
|
||||
/* Build expression tree for an operator invocation */
|
||||
extern Expr *make_op(List *opname, Node *ltree, Node *rtree);
|
||||
extern Expr *make_op_expr(Operator op, Node *ltree, Node *rtree,
|
||||
extern Expr *make_op(ParseState *pstate, List *opname,
|
||||
Node *ltree, Node *rtree);
|
||||
extern Expr *make_op_expr(ParseState *pstate, Operator op,
|
||||
Node *ltree, Node *rtree,
|
||||
Oid ltypeId, Oid rtypeId);
|
||||
|
||||
#endif /* PARSE_OPER_H */
|
||||
|
||||
Reference in New Issue
Block a user