Re: DELETE RETURNING

From: Markus Schaber <schabi(at)logix-tt(dot)com>
To: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: DELETE RETURNING
Date: 2006-09-25 12:30:35
Message-ID: 4517CBEB.6050505@logix-tt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi, Dave,

Dave Cramer wrote:

>> I just read the docs about DELETE RETURNING in 8.2, and a small idea
>> arised:
>>
>> INSERT INTO logtable DELETE * FROM lifetable WHERE date<'2006-01-01'
>> RETURNING *;
>>
>> Will this work as expected?
> What is your expected result here ? It would return all the rows that
> were deleted ?

Yes. It would be shorthand for "moving" rows between tables, faster than
first using "INSERT INTO .. SELECT" and then "DELETE" afterwards, as it
saves at least on table scan.

The question is whether INSERT INTO only allows SELECT as data source,
or every query returning a ResultSet.

I don't see any usecases for using UPDATE RETURNING and INSERT RETURNING
as data source for INSERT INTO yet, especially as UPDATE RETURNING
returns the new versions of the rows.

And I see that the same behaviour could be achieved with triggers, but
with much higher overhead for non-regular tasks.

Thanks,
Markus

--
Markus Schaber | Logical Tracking&Tracing International AG
Dipl. Inf. | Software Development GIS

Fight against software patents in Europe! www.ffii.org
www.nosoftwarepatents.org

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Teodor Sigaev 2006-09-25 12:30:49 DROP FUNCTION IF EXISTS
Previous Message Joachim Wieland 2006-09-25 12:25:12 Re: Buildfarm alarms