mirror of
https://github.com/postgres/postgres.git
synced 2025-07-28 23:42:10 +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:
@ -1,5 +1,5 @@
|
||||
<!--
|
||||
$PostgreSQL: pgsql/doc/src/sgml/ref/insert.sgml,v 1.26 2003/11/29 19:51:39 pgsql Exp $
|
||||
$PostgreSQL: pgsql/doc/src/sgml/ref/insert.sgml,v 1.27 2004/06/09 19:08:13 tgl Exp $
|
||||
PostgreSQL documentation
|
||||
-->
|
||||
|
||||
@ -73,6 +73,9 @@ INSERT INTO <replaceable class="PARAMETER">table</replaceable> [ ( <replaceable
|
||||
<listitem>
|
||||
<para>
|
||||
The name of a column in <replaceable class="PARAMETER">table</replaceable>.
|
||||
The column name can be qualified with a subfield name or array
|
||||
subscript, if needed. (Inserting into only some fields of a
|
||||
composite column leaves the other fields null.)
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
@ -184,13 +187,11 @@ INSERT INTO films SELECT * FROM tmp;
|
||||
|
||||
<programlisting>
|
||||
-- Create an empty 3x3 gameboard for noughts-and-crosses
|
||||
-- (all of these commands create the same board)
|
||||
-- (these commands create the same board)
|
||||
INSERT INTO tictactoe (game, board[1:3][1:3])
|
||||
VALUES (1,'{{"","",""},{},{"",""}}');
|
||||
INSERT INTO tictactoe (game, board[3][3])
|
||||
VALUES (2,'{}');
|
||||
VALUES (1,'{{"","",""},{"","",""},{"","",""}}');
|
||||
INSERT INTO tictactoe (game, board)
|
||||
VALUES (3,'{{,,},{,,},{,,}}');
|
||||
VALUES (2,'{{,,},{,,},{,,}}');
|
||||
</programlisting>
|
||||
</para>
|
||||
</refsect1>
|
||||
|
Reference in New Issue
Block a user