Re: libpq Prepared Statement with dynamic IN operator

From: "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com>
To: Dave Greeko <davegreeko(at)yahoo(dot)com>
Cc: pgsql-general <pgsql-general(at)postgresql(dot)org>
Subject: Re: libpq Prepared Statement with dynamic IN operator
Date: 2020-11-24 19:27:49
Message-ID: CAKFQuwZatW8rvCq6FbWnEkqqWzYNKWyt24mUpTSQNExUtruyrQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Tue, Nov 24, 2020 at 12:14 PM Dave Greeko <davegreeko(at)yahoo(dot)com> wrote:

> Dear All,
> I am having a hard time figuring out how prepare and execute a Prepared
> Statement with an "IN" operator in the WHERE clause using libpq. The total
> elements that will be passed to IN operator is dynamic and varied at
> runtime.
> here is an example query:
>
> select payload_id,ptime,frequency from codecs where tag IN (‘G729’,’GSM’);
>
> The number of elements to filter for with this particular example is 2 but
> this varies at runtime (between 1 to 127 elements).
> I would like to know what’s the proper syntax of the (char *query)
> parameter when calling the PQprepare() function.
> I tried “select payload_id,ptime,frequency from codecs where tag=ANY(?)”
> but failed
>
>
ANY wants an array - you can either pass an array input literal and do
"?::text[]" or you can pass a probably easier to write "csv" value and
write "ANY(string_to_array(?, ','))".

David J.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Paul Martinez 2020-11-24 19:53:32 What is the best way to get the current number of worker processes?
Previous Message Dave Greeko 2020-11-24 19:14:03 libpq Prepared Statement with dynamic IN operator