On Wednesday 09 August 2006 10:53, Martijn van Oosterhout wrote:
> On Wed, Aug 09, 2006 at 10:44:22AM -0400, Robert Treat wrote:
> > Is there a way to determine which datatypes take a length argument (eg.
> > varchar, time, etc...) by looking in the system catalogs? pg_type doesnt
> > seem to have the info... or is there a single place in the back end code
> > that contains this info?
>
> Sure, wherever the typlen column in pg_type is -1. In that column,
> positive is fixed length, -1 is a verlena type and -2 is null
> terminated (for cstring).
>

pagila=# select now()::varchar(3), now()::time(3);
 now |     now
-----+--------------
 200 | 13:19:34.339
(1 row)
pagila=# select typname, typlen from pg_type where typname in 
('varchar', 'time');
 typname | typlen
---------+--------
 varchar |     -1
 time    |      8
(2 rows)

Both time and varchar take an argument, but they have different typlen values.  
I don't think the docs are wrong here, I think they just don't tell me what I 
am looking for. 

-- 
Robert Treat
Build A Brighter LAMP :: Linux Apache {middleware} PostgreSQL

---------------------------(end of broadcast)---------------------------
TIP 3: Have you checked our extensive FAQ?

               http://www.postgresql.org/docs/faq

Reply via email to