mirror of
https://github.com/postgres/postgres.git
synced 2025-07-07 00:36:50 +03:00
Support assignment to subfields of composite columns in UPDATE and INSERT.
As a side effect, cause subscripts in INSERT targetlists to do something more or less sensible; previously we evaluated such subscripts and then effectively ignored them. Another side effect is that UPDATE-ing an element or slice of an array value that is NULL now produces a non-null result, namely an array containing just the assigned-to positions.
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.116 2004/05/10 22:44:49 tgl Exp $
|
||||
* $PostgreSQL: pgsql/src/include/nodes/execnodes.h,v 1.117 2004/06/09 19:08:18 tgl Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -574,6 +574,18 @@ typedef struct FieldSelectState
|
||||
TupleDesc argdesc; /* tupdesc for most recent input */
|
||||
} FieldSelectState;
|
||||
|
||||
/* ----------------
|
||||
* FieldStoreState node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct FieldStoreState
|
||||
{
|
||||
ExprState xprstate;
|
||||
ExprState *arg; /* input tuple value */
|
||||
List *newvals; /* new value(s) for field(s) */
|
||||
TupleDesc argdesc; /* tupdesc for most recent input */
|
||||
} FieldStoreState;
|
||||
|
||||
/* ----------------
|
||||
* CaseExprState node
|
||||
* ----------------
|
||||
|
Reference in New Issue
Block a user