> -----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