| From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> | 
|---|---|
| To: | Rajni Bobal <rajnibobal(at)gmail(dot)com> | 
| Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Vik Fearing <vik(at)postgresfriends(dot)org>, pgsql-bugs(at)lists(dot)postgresql(dot)org | 
| Subject: | Re: BUG #18774: Not the required output of the query used in the function(delete_from_table1) in postgresql9.4 | 
| Date: | 2025-01-22 16:43:07 | 
| Message-ID: | CAKFQuwah2ja1MorKbXy5QpZbwF6iGKsboAyKkPV0uyaiTr3tYQ@mail.gmail.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-bugs | 
You seem to have reversed which query you deem correct...
On Wed, Jan 22, 2025 at 8:59 AM Rajni Bobal <rajnibobal(at)gmail(dot)com> wrote:
>
>         || quote_ident(colname)
>         || ' IN (SELECT '
>         || quote_ident(colname)
>         || ' FROM '
>         || quote_ident(sel_tblname)
>
This deletes rows from the table depending upon finding the same value in
colname in the subquery.
>         ' where $1 in (select $1 from ' || quote_ident(sel_tblname) ||
>
This deletes rows from the table depending only upon finding at least one
row in the subquery - the limit is basically pointless.  Since all rows
return the value provided in $1, and $1 = $1.
So these indeed produce different results, as they should.  The "error" one
is behaving exactly as it should.  If it doesn't do what you want - which
is likely as it is a very unusual query - don't use it.
David J.
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Noah Misch | 2025-01-23 02:13:49 | Re: BUG #17821: Assertion failed in heap_update() due to heap pruning | 
| Previous Message | Rajni Bobal | 2025-01-22 15:54:56 | Re: BUG #18774: Not the required output of the query used in the function(delete_from_table1) in postgresql9.4 |