Re: PL/pgSQL: SELECT INTO EXACT
Bruce Momjian <pgman@candle.pha.pa.us>
From: Bruce Momjian <pgman@candle.pha.pa.us>
To: Matt Miller <mattm@epx.com>
Cc: pgsql-patches <pgsql-patches@postgresql.org>
Date: 2005-07-30T04:24:25Z
Lists: pgsql-hackers
Sorry, patch removed from the queue. I now see the later discussion. --------------------------------------------------------------------------- Matt Miller wrote: > This patch implements an optional EXACT keyword after the INTO keyword > of the PL/pgSQL SELECT INTO command. The motivation is to come closer > to Oracle's SELECT INTO behavior: when SELECTing INTO scalar targets, > raise an exception and leave the targets untouched if the query does not > return exactly one row. This patch does not go so far as to raise an > exception, but it can simplify porting efforts from PL/SQL. I also feel > that this EXACT behavior is overall a bit cleaner than the current > PL/pgSQL behavior. Maybe I've just been brainwashed by years of > Oracle'ing. > > Here are three excerpts from the patched PL/pgSQL documentation: > > "If the EXACT option is specified, then target will not be set unless > the query returns exactly one row" > > "You can check the special FOUND variable after a SELECT INTO to > determine whether the statement was successful. ... an EXACT query is > successful only if exactly 1 row is returned." > > "...GET DIAGNOSTICS (see Section 35.6.6) to retrieve ROW_COUNT. After a > SELECT INTO EXACT statement ROW_COUNT ... will be equal to 0, 1, or 2, > indicating no matching rows, exactly one matching row, or greater than > one matching row, respectively." [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 3: Have you checked our extensive FAQ? > > http://www.postgresql.org/docs/faq -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073