diff options
| author | Tom Lane | 2004-05-10 22:44:49 +0000 |
|---|---|---|
| committer | Tom Lane | 2004-05-10 22:44:49 +0000 |
| commit | 2f63232d30ca64a8f2684af855230f23a701d371 (patch) | |
| tree | b7a7707d1ec9edf368780cd3f4a23755527c5884 /src/pl | |
| parent | 9a939886ac782cfee3cd5fdd1c58689163ed84be (diff) | |
Promote row expressions to full-fledged citizens of the expression syntax,
rather than allowing them only in a few special cases as before. In
particular you can now pass a ROW() construct to a function that accepts
a rowtype parameter. Internal generation of RowExprs fixes a number of
corner cases that used to not work very well, such as referencing the
whole-row result of a JOIN or subquery. This represents a further step in
the work I started a month or so back to make rowtype values into
first-class citizens.
Diffstat (limited to 'src/pl')
| -rw-r--r-- | src/pl/plpgsql/src/pl_exec.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c index b71a71bbaac..3a90b464851 100644 --- a/src/pl/plpgsql/src/pl_exec.c +++ b/src/pl/plpgsql/src/pl_exec.c @@ -3,7 +3,7 @@ * procedural language * * IDENTIFICATION - * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.99 2004/04/01 21:28:46 tgl Exp $ + * $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_exec.c,v 1.100 2004/05/10 22:44:49 tgl Exp $ * * This software is copyrighted by Jan Wieck - Hamburg. * @@ -3752,6 +3752,16 @@ exec_simple_check_node(Node *node) return TRUE; } + case T_RowExpr: + { + RowExpr *expr = (RowExpr *) node; + + if (!exec_simple_check_node((Node *) expr->args)) + return FALSE; + + return TRUE; + } + case T_CoalesceExpr: { CoalesceExpr *expr = (CoalesceExpr *) node; |
