Re: DELETE ... USING

From: Euler Taveira de Oliveira <eulerto(at)yahoo(dot)com(dot)br>
To: Neil Conway <neilc(at)samurai(dot)com>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL-patches <pgsql-patches(at)postgresql(dot)org>, eulerto(at)yahoo(dot)com(dot)br
Subject: Re: DELETE ... USING
Date: 2005-04-05 02:15:04
Message-ID: 20050405021504.57497.qmail@web54607.mail.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-patches

Hi Neil,

> > BTW, this patch is lacking ruleutils.c support. Put a DELETE USING
> > into a rule and see whether pg_dump will dump the rule correctly
> ...
>
> Good catch; a revised patch is attached.
>
Greate job. But I'm worried about add_missing_from enabled. See:

euler=# delete from t3 using t1 where b > 500;
DELETE 4
euler=# select * from t3;
x | y
---+---
(0 rows)

In this case, I 'forget' to do the join and it delete all rows from t3.
I know that user needs to pay attention, but ... What about default
add_missing_from to off?

The other case is:

euler=# select * from t1 where t1.a = t3.x;
NOTICE: adding missing FROM-clause entry for table "t3"
NOTICE: adding missing FROM-clause entry for table "t3"
a | b
---+----
5 | 10
(1 row)

euler=# delete from t1 where t1.a = t3.x;
DELETE 1
euler=#

I think we need at least a NOTICE here. Of course it could be extended
to UPDATE too.

BTW, what about regression tests for UPDATE ... FROM?

PS> all examples are extracted from regression database.

Euler Taveira de Oliveira
euler[at]yahoo_com_br




Yahoo! Acesso Grátis - Internet rápida e grátis.
Instale o discador agora! http://br.acesso.yahoo.com/

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Greg Sabino Mullane 2005-04-05 02:46:18 Re: [GENERAL] plPHP in core?
Previous Message Tom Lane 2005-04-05 02:06:12 Re: [HACKERS] plPHP in core?

Browse pgsql-patches by date

  From Date Subject
Next Message Neil Conway 2005-04-05 02:49:19 Re: DELETE ... USING
Previous Message Tom Lane 2005-04-05 02:04:06 Re: avg(int2) and avg(int8) micro-opt