Re: BUG #18774: Not the required output of the query used in the function(delete_from_table1) in postgresql9.4
David G. Johnston <david.g.johnston@gmail.com>
From: "David G. Johnston" <david.g.johnston@gmail.com>
To: Rajni Bobal <rajnibobal@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Vik Fearing <vik@postgresfriends.org>, pgsql-bugs@lists.postgresql.org
Date: 2025-01-22T16:43:07Z
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@gmail.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.