Skip to content
Snippets Groups Projects
Commit ef48ed4c authored by Tom Lane's avatar Tom Lane
Browse files

Actually ... it's pretty silly that parse_oper.c doesn't set up the

opfuncid of an OpExpr initially, considering that it has the information
at hand already.  We'll still treat opfuncid as a cache rather than a
guaranteed-valid value, but this change saves one more syscache lookup
in the normal code path.
parent 6342f36d
No related branches found
No related tags found
No related merge requests found
......@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/parser/parse_oper.c,v 1.97 2007/11/15 21:14:37 momjian Exp $
* $PostgreSQL: pgsql/src/backend/parser/parse_oper.c,v 1.98 2007/11/22 19:40:25 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -939,7 +939,7 @@ make_scalar_array_op(ParseState *pstate, List *opname,
/* and build the expression node */
result = makeNode(ScalarArrayOpExpr);
result->opno = oprid(tup);
result->opfuncid = InvalidOid;
result->opfuncid = opform->oprcode;
result->useOr = useOr;
result->args = args;
......@@ -1011,7 +1011,7 @@ make_op_expr(ParseState *pstate, Operator op,
/* and build the expression node */
result = makeNode(OpExpr);
result->opno = oprid(op);
result->opfuncid = InvalidOid;
result->opfuncid = opform->oprcode;
result->opresulttype = rettype;
result->opretset = get_func_retset(opform->oprcode);
result->args = args;
......
......@@ -10,7 +10,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.135 2007/11/15 22:25:17 momjian Exp $
* $PostgreSQL: pgsql/src/include/nodes/primnodes.h,v 1.136 2007/11/22 19:40:25 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -302,7 +302,7 @@ typedef struct FuncExpr
*
* Note that opfuncid is not necessarily filled in immediately on creation
* of the node. The planner makes sure it is valid before passing the node
* tree to the executor, but during parsing/planning opfuncid is typically 0.
* tree to the executor, but during parsing/planning opfuncid can be 0.
*/
typedef struct OpExpr
{
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment