Re: Returning a bool on DELETE in a proc. - Mailing list pgsql-sql

From KÖPFERL Robert
Subject Re: Returning a bool on DELETE in a proc.
Date
Msg-id ED4E30DD9C43D5118DFB00508BBBA76EB1656B@neptun.sonorys.at
Whole thread Raw
In response to Returning a bool on DELETE in a proc.  (KÖPFERL Robert <robert.koepferl@sonorys.at>)
Responses Re: Returning a bool on DELETE in a proc.
Re: Returning a bool on DELETE in a proc.
List pgsql-sql
Thanks, but that was not what I was looking for.

Seems that I forgot to mention that this function is intended to be written
in SQL, not in PL/SQL. For the second one I already picked it off the
fascinating* doc (as Keith did) that GET DIAGONSTIC is the right thing.

So what variable/function is the correct SQL-equivalent to ROW_COUNT and can
it be used in the following statement ?
like DELETE...; SELECT (ROW_COUNT<>0); to return a bool value?

Or would you really suggest to change the fct's type to void?


*The doc is fascinating, because it is rather short in terms of PL/pgSQL but
if you are looking for something you can find it in some example or
mentioned in a sentence somweheewere

> -----Original Message-----
> From: Michael Fuhr [mailto:mike@fuhr.org]
> Sent: Dienstag, 18. Jänner 2005 19:52
> To: KÖPFERL Robert
> Cc: pgsql-sql@postgresql.org
> Subject: Re: [SQL] Returning a bool on DELETE in a proc.
>
>
> On Tue, Jan 18, 2005 at 05:04:58PM +0100, KÖPFERL Robert wrote:
>
> > I'm currently writing a function which encapsulates a
> delete and should
> > return a bool as indicator for success.
>
> How do you define success?  When the delete affects one or more rows?
>
> >      DELETE FROM "TariffDetails" WHERE "TariffId"=$1 and
> "BNumberPrefix"=$2;
> >      SELECT TRUE;
> >
> > but this makes me not happy.
> > How can I distingruish wehter DELETE affected 0 or more
> rows and return that
> > while DELETE is not capable of returning any value?
>
> If you're using PL/pgSQL then see "Obtaining the Result Status" in
> the "Basic Statements" section of the PL/pgSQL documentation.
>
> > And is the whole function executed if the DELETE fails or
> will it stop
> > bevore the select?
>
> A PL/pgSQL function should exit immediately with an error if the
> DELETE fails.  But understand that PL/pgSQL's notion of a failure
> might not match yours: trying to delete from a non-existent table
> is a failure, but deleting zero rows from an existing table isn't.
>
> --
> Michael Fuhr
> http://www.fuhr.org/~mfuhr/
>


pgsql-sql by date:

Previous
From: Michael Fuhr
Date:
Subject: Re: Looking for examples of S/P
Next
From: Achilleus Mantzios
Date:
Subject: Re: mail + rfc822, rfc2822 + schema