> -----Original Message-----
> From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
> Sent: Monday, June 11, 2007 1:32 PM
> To: Dann Corbit
> Cc: Gregory Stark; pgsql-hackers@postgresql.org
> Subject: Re: [HACKERS] Selecting a constant question
>
> "Dann Corbit" <DCorbit@connx.com> writes:
> > The issue is this:
> > Postgres describes the column with a typmod of -1 (unknown) and a
length
> > of 65534.
>
> Oh, you're looking at typlen not typmod. Please observe the comments
in
> pg_type.h:
>
> /*
> * For a fixed-size type, typlen is the number of bytes we use
to
> * represent a value of this type, e.g. 4 for an int4. But for
> a
> * variable-length type, typlen is negative. We use -1 to
indicate
> a
> * "varlena" type (one that has a length word), -2 to indicate a
> * null-terminated C string.
> */
> int2 typlen;
>
> You should be treating typlen as signed not unsigned, and not assuming
a
> fixed width for any negative value.
>
> Since the width refers to the server internal representation, and not
to
> what comes down the wire, I find it pretty strange for an application
to
> be using typlen for anything at all actually.
Thanks for the response.
Since libpq function PQfsize returns -2 for all constant character
strings in SQL statements ... What is the proper procedure to determine
the length of a constant character column after query execution but
before fetching the first row of data?