From: | Dominique Devienne <ddevienne(at)gmail(dot)com> |
---|---|
To: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
Cc: | Alban Hertroys <haramrae(at)gmail(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: WHERE col = ANY($1) extended to 2 or more columns? |
Date: | 2023-02-09 17:35:42 |
Message-ID: | CAFCRh-9ALd0kvGKxuj6oMMzxr2jcO=7nrcgx0V9vaGMZ0tbBhA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, Feb 9, 2023 at 5:37 PM David G. Johnston <david(dot)g(dot)johnston(at)gmail(dot)com>
wrote:
> On Thu, Feb 9, 2023 at 9:28 AM Alban Hertroys <haramrae(at)gmail(dot)com> wrote:
>
>> > On 9 Feb 2023, at 16:41, Dominique Devienne <ddevienne(at)gmail(dot)com>
>> wrote:
>> > Now we'd like to do the same for composite keys, and I don't know how
>> to do that.
>>
>> This works:
>> => select (1, 'one'::text) in ((1, 'two'::text), (2, 'one'::text), (1,
>> 'one'::text), (2, 'two'::text));
>>
> 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.
>
Right. The goal is to (re)use a prepared statement (i.e. plan once), and
bind the RHS (binary) array
and do a single exec (single round-trip) to get the matching rows. AFAIK,
this is the fastest way.
If there's a better/faster way, I'm interested. --DD
From | Date | Subject | |
---|---|---|---|
Next Message | Dominique Devienne | 2023-02-09 17:40:33 | Re: Using PostgreSQL for service discovery and health-check |
Previous Message | Peter Geoghegan | 2023-02-09 17:27:08 | Re: ERROR: posting list tuple with 2 items cannot be split at offset 17 |