From 24e1a045915215a7276d80654731a9823801558b Mon Sep 17 00:00:00 2001 From: Bruce Momjian <bruce@momjian.us> Date: Thu, 1 Dec 2005 22:07:59 +0000 Subject: [PATCH] Split out MERGE and REPLACE/UPSERT items. < * Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules, < triggers?) > * Add SQL-standard MERGE command, typically used to merge two tables > > This is similar to UPDATE, then for unmatched rows, INSERT. > Whether concurrent access allows modifications which could cause > row loss is implementation independent. > > * Add REPLACE or UPSERT command that does UPDATE, or on failure, INSERT --- doc/TODO | 11 ++++++++--- doc/src/FAQ/TODO.html | 10 +++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/doc/TODO b/doc/TODO index b43b45d89e1..ec8b12abe5c 100644 --- a/doc/TODO +++ b/doc/TODO @@ -2,7 +2,7 @@ PostgreSQL TODO List ==================== Current maintainer: Bruce Momjian (pgman@candle.pha.pa.us) -Last updated: Mon Nov 28 21:02:36 EST 2005 +Last updated: Thu Dec 1 17:07:44 EST 2005 The most recent version of this document can be viewed at http://www.postgresql.org/docs/faqs.TODO.html. @@ -369,8 +369,13 @@ SQL Commands information. * Add a GUC variable to warn about non-standard SQL usage in queries -* Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules, - triggers?) +* Add SQL-standard MERGE command, typically used to merge two tables + + This is similar to UPDATE, then for unmatched rows, INSERT. + Whether concurrent access allows modifications which could cause + row loss is implementation independent. + +* Add REPLACE or UPSERT command that does UPDATE, or on failure, INSERT To implement this cleanly requires that the table have a unique index so duplicate checking can be easily performed. It is possible to diff --git a/doc/src/FAQ/TODO.html b/doc/src/FAQ/TODO.html index 527e4e1b20e..6b00a6b1dba 100644 --- a/doc/src/FAQ/TODO.html +++ b/doc/src/FAQ/TODO.html @@ -8,7 +8,7 @@ <body bgcolor="#FFFFFF" text="#000000" link="#FF0000" vlink="#A00000" alink="#0000FF"> <h1><a name="section_1">PostgreSQL TODO List</a></h1> <p>Current maintainer: Bruce Momjian (<a href="mailto:pgman@candle.pha.pa.us">pgman@candle.pha.pa.us</a>)<br/> -Last updated: Mon Nov 28 21:02:36 EST 2005 +Last updated: Thu Dec 1 17:07:44 EST 2005 </p> <p>The most recent version of this document can be viewed at<br/> <a href="http://www.postgresql.org/docs/faqs.TODO.html">http://www.postgresql.org/docs/faqs.TODO.html</a>. @@ -339,8 +339,12 @@ first. information. </p> </li><li>Add a GUC variable to warn about non-standard SQL usage in queries - </li><li>Add MERGE command that does UPDATE/DELETE, or on failure, INSERT (rules, - triggers?) + </li><li>Add SQL-standard MERGE command, typically used to merge two tables +<p> This is similar to UPDATE, then for unmatched rows, INSERT. + Whether concurrent access allows modifications which could cause + row loss is implementation independent. +</p> + </li><li>Add REPLACE or UPSERT command that does UPDATE, or on failure, INSERT <p> To implement this cleanly requires that the table have a unique index so duplicate checking can be easily performed. It is possible to do it without a unique index if we require the user to LOCK the table -- GitLab