Re: WHERE col = ANY($1) extended to 2 or more columns?
David G. Johnston <david.g.johnston@gmail.com>
From: "David G. Johnston" <david.g.johnston@gmail.com>
To: Alban Hertroys <haramrae@gmail.com>
Cc: Dominique Devienne <ddevienne@gmail.com>,
pgsql-general@lists.postgresql.org
Date: 2023-02-09T16:37:29Z
Lists: pgsql-general
On Thu, Feb 9, 2023 at 9:28 AM Alban Hertroys <haramrae@gmail.com> wrote: > > > On 9 Feb 2023, at 16:41, Dominique Devienne <ddevienne@gmail.com> wrote: > > > > Hi. We are implementing an API which takes a list of row keys, and must > return info about those rows. To implement that efficiently, in as few > round-trips as possible, we bind a (binary) array of keys (ints, uuids, or > strings) and that works great, but only if the key is a scalar one. > > > > Now we'd like to do the same for composite keys, and I don't know how to > do that. > > Is it possible? Could someone please help out or demo such a thing? > > We are doing it in C++ using libpq, but a pure SQL or PL/pgSQL demo > would still help (I think). > > This works: > > => select (1, 'one'::text) in ((1, 'two'::text), (2, 'one'::text), (1, > 'one'::text), (2, 'two'::text)); > ?column? > ---------- > t > (1 row) > > But you cannot write the right-side of the IN as a single parameter which seems to be the primary constraint trying to be conformed to. David J.