PQexecParams and types

Lists: pgsql-performance
From: Czuczy Gergely <phoemix(at)harmless(dot)hu>
To: pgsql-performance(at)postgresql(dot)org
Subject: PQexecParams and types
Date: 2004-02-03 07:25:38
Message-ID: Pine.LNX.4.44.0402030822001.19142-100000@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-performance

Hello

i've read in the docs to use the proper indexes both types must match in
the where clause, to achive this the user can simply put a string into the
side of the equation mark and pgsql will convert it automaticly. my
question is, when I'm using PQexecParams, should I give all the values as
a string, and it will be converted, or I have to figure out the type of
the given field somehow? i'm writing an interface for my php extension(i'm
not statisfied by the boundled), so i cannot figure out the type of the
fields in most cases. what should be done for the best performance in this
situation?

Bye,

Gergely Czuczy
mailto: phoemix(at)harmless(dot)hu
PGP: http://phoemix.harmless.hu/phoemix.pgp

The point is, that geeks are not necessarily the outcasts
society often believes they are. The fact is that society
isn't cool enough to be included in our activities.


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Czuczy Gergely <phoemix(at)harmless(dot)hu>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: PQexecParams and types
Date: 2004-02-03 14:53:13
Message-ID: 17666.1075819993@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-performance

Czuczy Gergely <phoemix(at)harmless(dot)hu> writes:
> i've read in the docs to use the proper indexes both types must match in
> the where clause, to achive this the user can simply put a string into the
> side of the equation mark and pgsql will convert it automaticly. my
> question is, when I'm using PQexecParams, should I give all the values as
> a string, and it will be converted, or I have to figure out the type of
> the given field somehow?

You should leave the parameter types unspecified. Their types will be
resolved in much the same way that a quoted literal is handled.

regards, tom lane


From: Czuczy Gergely <phoemix(at)harmless(dot)hu>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: PQexecParams and types
Date: 2004-02-03 14:56:06
Message-ID: Pine.LNX.4.44.0402031555080.30492-100000@localhost
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-performance

hello

to leave it unspecified what value should I set to the paramTypes array?
and could you insert this answer to to docs, it could be useful

Bye,

Gergely Czuczy
mailto: phoemix(at)harmless(dot)hu
PGP: http://phoemix.harmless.hu/phoemix.pgp

The point is, that geeks are not necessarily the outcasts
society often believes they are. The fact is that society
isn't cool enough to be included in our activities.

On Tue, 3 Feb 2004, Tom Lane wrote:

> Czuczy Gergely <phoemix(at)harmless(dot)hu> writes:
> > i've read in the docs to use the proper indexes both types must match in
> > the where clause, to achive this the user can simply put a string into the
> > side of the equation mark and pgsql will convert it automaticly. my
> > question is, when I'm using PQexecParams, should I give all the values as
> > a string, and it will be converted, or I have to figure out the type of
> > the given field somehow?
>
> You should leave the parameter types unspecified. Their types will be
> resolved in much the same way that a quoted literal is handled.
>
> regards, tom lane
>


From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Czuczy Gergely <phoemix(at)harmless(dot)hu>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: PQexecParams and types
Date: 2004-02-03 15:27:22
Message-ID: 18106.1075822042@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-performance

Czuczy Gergely <phoemix(at)harmless(dot)hu> writes:
> to leave it unspecified what value should I set to the paramTypes array?
> and could you insert this answer to to docs, it could be useful

It is in the docs:

paramTypes[] specifies, by OID, the data types to be assigned to the
parameter symbols. If paramTypes is NULL, or any particular element
in the array is zero, the server assigns a data type to the
parameter symbol in the same way it would do for an untyped literal
string.

regards, tom lane