> -----Original Message-----
> From: Tom Lane [mailto:[EMAIL PROTECTED]
> 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" <[EMAIL PROTECTED]> 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?


---------------------------(end of broadcast)---------------------------
TIP 9: In versions below 8.0, the planner will ignore your desire to
       choose an index scan if your joining column's datatypes do not
       match

Reply via email to