Re: DELETE with LIMIT (or my first hack) - Mailing list pgsql-hackers

From Daniel Loureiro
Subject Re: DELETE with LIMIT (or my first hack)
Date
Msg-id AANLkTim+dhH9FQ4K8KPTUA3YqheC5xs_akvmkko58aAD@mail.gmail.com
Whole thread Raw
In response to Re: DELETE with LIMIT (or my first hack)  (Jaime Casanova <jaime@2ndquadrant.com>)
Responses Re: DELETE with LIMIT (or my first hack)
List pgsql-hackers
good point. But when you use a LIMIT in a SELECT statement you WANT n RANDOM tuples - its wrong to get RANDOM tuples ? So, in the same logic, its wrong to exclude n random tuples ? Besides, if you want DELETE just 1 tuple, why the executor have to scan the entire table, and not just stoping after find the 1 tuple ? Why the LIMIT clause should be used to speedup only SELECT statements ? if the programmer know the expected number of affected rows why not use it to speed up DELETE/UPDATE ?

cheers,
--
Daniel Loureiro
http://diffcoder.blogspot.com/

2010/11/30 Jaime Casanova <jaime@2ndquadrant.com>
On Mon, Nov 29, 2010 at 9:08 PM, Daniel Loureiro <loureirorg@gmail.com> wrote:
>
> 3) change the executor to stop after “n” successful iterations. Is
> this correct ?
>

no. it means you will delete the n first tuples that happen to be
found, if you don't have a WHERE clause that means is very possible
you delete something you don't want to... the correct solution is to
use always try DELETE's inside transactions and only if you see the
right thing happening issue a COMMIT

besides i think this has been proposed and rejected before

--
Jaime Casanova         www.2ndQuadrant.com
Professional PostgreSQL: Soporte y capacitación de PostgreSQL

pgsql-hackers by date:

Previous
From: Josh Kupershmidt
Date:
Subject: Re: [GENERAL] column-level update privs + lock table
Next
From: Bruce Momjian
Date:
Subject: Re: ALTER TABLE ... IF EXISTS feature?