Thread: Problems with PQfmod() returning -1 on varchar field (libpq-8.0.0 )?

Problems with PQfmod() returning -1 on varchar field (libpq-8.0.0 )?

From
Jerry Day
Date:
Hi all,

I've recently encountered a situation where PQfmod() fails to return the
defined length of a varchar field referenced in a query, as expected -
returning no information (-1), instead. Has anyone else encountered this
issue? If so, why does this occur? Can you recommended a method to more
reliably obtain the length of varchar fields, as defined in the relations
referenced by a query? 

Thanks,

Jerry L. Day


Re: Problems with PQfmod() returning -1 on varchar field

From
Bruce Momjian
Date:
Jerry Day wrote:
> Hi all,
> 
> I've recently encountered a situation where PQfmod() fails to return the
> defined length of a varchar field referenced in a query, as expected -
> returning no information (-1), instead. Has anyone else encountered this
> issue? If so, why does this occur? Can you recommended a method to more
> reliably obtain the length of varchar fields, as defined in the relations
> referenced by a query? 

Can we see the query?  I suspect the column is being manipulated in some
way and the length isn't carried through to the query output --- if so,
there might not be much we can do about it.

--  Bruce Momjian                        |  http://candle.pha.pa.us pgman@candle.pha.pa.us               |  (610)
359-1001+  If your life is a hard drive,     |  13 Roberts Road +  Christ can be your backup.        |  Newtown Square,
Pennsylvania19073
 


Re: Problems with PQfmod() returning -1 on varchar field (libpq-8.0.0 )?

From
Michael Fuhr
Date:
On Fri, Apr 01, 2005 at 04:21:03PM -0800, Jerry Day wrote:
> 
> I've recently encountered a situation where PQfmod() fails to return the
> defined length of a varchar field referenced in a query, as expected -
> returning no information (-1), instead. Has anyone else encountered this
> issue? If so, why does this occur? Can you recommended a method to more
> reliably obtain the length of varchar fields, as defined in the relations
> referenced by a query? 

Are you sure the column has a length specifier?  What does "\d tablename"
show, or what's the result of the following query?

SELECT attname, attnum, atttypid::regtype, atttypmod
FROM pg_attribute
WHERE attrelid = 'tablename'::regclass AND attnum >= 1 AND attisdropped IS FALSE
ORDER by attnum;

-- 
Michael Fuhr
http://www.fuhr.org/~mfuhr/