| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> | 
|---|---|
| To: | Kris Jurka <books(at)ejurka(dot)com> | 
| Cc: | dmp <danap(at)ttc-cmc(dot)net>, pgsql-jdbc(at)postgresql(dot)org | 
| Subject: | Re: Array Char/VarChar Size | 
| Date: | 2008-02-29 18:44:27 | 
| Message-ID: | 10183.1204310667@sss.pgh.pa.us | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-jdbc | 
Kris Jurka <books(at)ejurka(dot)com> writes:
> Multi-dimensional array information is not stored.  Every array type may 
> be any number of dimensions.  The precision information is not available 
> in the information_schema, but it is available in the system catalog 
> tables.  See pg_attribute.atttypmod, but it does require some decoding.
Rather than embedding knowledge of typmod encoding in client-side code,
may I suggest using the format_type function?  For example
select format_type(atttypid, atttypmod) from pg_attribute where
attrelid = 'my_table'::regclass and attname = 'my_column';
This will give you back something reasonably standardized, like
"character varying(42)[]".  You'll still need a bit of logic to
extract what you want, but it seems much less likely to break.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Josh Berkus | 2008-02-29 18:47:11 | Summer of Code Java? | 
| Previous Message | Kris Jurka | 2008-02-29 17:57:11 | Re: Bug while retrieving money data type from db |