Re: Size of varchar in an array - Mailing list pgsql-general

From Dmitriy Igrishin
Subject Re: Size of varchar in an array
Date
Msg-id AANLkTikgHt0S8BjE7Gi0GVduh5m2zjeiB4UsMaYHsS0p@mail.gmail.com
Whole thread Raw
In response to Size of varchar in an array  (RW Shore <rws228@gmail.com>)
List pgsql-general
Hey,

2011/2/8 RW Shore <rws228@gmail.com>
I'm using the following type definition:
create type typedef.BASIC_PEDIGREE as (
        DATE_ADDED TIMESTAMP,
        DESCRIPTION VARCHAR(128) [10]
)\c

I understand that PostgreSQL doesn't enforce the array length [10]. However, I'd like to write an application that can retrieve this length AND the size of the varchar that makes up the array. I can't find these values anyplace in the various system catalogs or views. Does PostgreSQL keep this information someplace and if so where? If there's no way to retrieve (say) the max size of the varchar, does this mean that PostgreSQL does not enforce the max size of this field as well as not enforcing the array bounds?
I am not sure that Postgres keeps array size limits since, according to
http://www.postgresql.org/docs/9.0/static/arrays.html#ARRAYS-DECLARATION
"... current implementation ignores any supplied array size limits ..."
But it is possible to get maximum length of varchar:

SELECT atttypmod - 4 FROM pg_attribute
  WHERE attrelid = 'typedef.BASIC_PEDIGREE'::regclass
  AND attname = 'DESCRIPTION';

Please note that 4 is an integer which represents length.


--
// Dmitriy.


pgsql-general by date:

Previous
From: Alban Hertroys
Date:
Subject: Re: Multithreaded query onto 4 postgresql instances
Next
From: Dmitriy Igrishin
Date:
Subject: Re: SELECT INTO array[i] with PL/pgSQL