summaryrefslogtreecommitdiff
path: root/src/backend/parser/parse_agg.c
diff options
context:
space:
mode:
authorTom Lane <tgl@sss.pgh.pa.us>2006-12-10 22:13:27 +0000
committerTom Lane <tgl@sss.pgh.pa.us>2006-12-10 22:13:27 +0000
commit9fa12ddda62549a0e0225220745c3bf89434dab3 (patch)
tree691cde987387d3500ec9c5560f19b270beb90da7 /src/backend/parser/parse_agg.c
parent314c7b642b14e8a60a411ecce2435edf0072f78a (diff)
Add a paramtypmod field to Param nodes. This is dead weight for Params
representing externally-supplied values, since the APIs that carry such values only specify type not typmod. However, for PARAM_SUBLINK Params it is handy to carry the typmod of the sublink's output column. This is a much cleaner solution for the recently reported 'could not find pathkey item to sort' and 'failed to find unique expression in subplan tlist' bugs than my original 8.2-compatible patch. Besides, someday we might want to support typmods for external parameters ...
Diffstat (limited to 'src/backend/parser/parse_agg.c')
-rw-r--r--src/backend/parser/parse_agg.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/backend/parser/parse_agg.c b/src/backend/parser/parse_agg.c
index 3bda907c994..438d7398c32 100644
--- a/src/backend/parser/parse_agg.c
+++ b/src/backend/parser/parse_agg.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/parser/parse_agg.c,v 1.73 2006/07/27 19:52:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/parser/parse_agg.c,v 1.74 2006/12/10 22:13:26 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -394,6 +394,7 @@ build_aggregate_fnexprs(Oid *agg_input_types,
argp->paramkind = PARAM_EXEC;
argp->paramid = -1;
argp->paramtype = agg_state_type;
+ argp->paramtypmod = -1;
args = list_make1(argp);
@@ -403,6 +404,7 @@ build_aggregate_fnexprs(Oid *agg_input_types,
argp->paramkind = PARAM_EXEC;
argp->paramid = -1;
argp->paramtype = agg_input_types[i];
+ argp->paramtypmod = -1;
args = lappend(args, argp);
}
@@ -425,6 +427,7 @@ build_aggregate_fnexprs(Oid *agg_input_types,
argp->paramkind = PARAM_EXEC;
argp->paramid = -1;
argp->paramtype = agg_state_type;
+ argp->paramtypmod = -1;
args = list_make1(argp);
*finalfnexpr = (Expr *) makeFuncExpr(finalfn_oid,