Re: Getting lengths of variable fields

Peter Eisentraut <peter_e@gmx.net>

From: Peter Eisentraut <peter_e@gmx.net>
To: Michelle Murrain <mpm@norwottuck.com>
Cc: <pgsql-general@postgresql.org>
Date: 2001-03-05T22:40:57Z
Lists: pgsql-general
Michelle Murrain writes:

> I'm writing a very robust validation script in perl for database entry. One
> of the things I'd like to do is check how large a field is, and make sure
> that the entry into that field isn't too big. Problem is, for variable length
> fields, DBD::Pg returns a -1 size, using the pg_size attribute.
>
> Is there something I am missing? Is there a way to get the size of variable
> length types using DBI/DBD::Pg, in particular, char() and varchar()?

Normally, you'd use LENGTH or OCTET_LENGTH.  If you want to get the
storage size on disk, you could add 4 to what you get as length, but this
result seems to be of dubious value, especially with TOAST (compression,
out-of-line storage).

-- 
Peter Eisentraut      peter_e@gmx.net       http://yi.org/peter-e/