pg.ddx.io  pgsql-interfaces@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Paul Tilles <Paul.Tilles@noaa.gov>
To: interfaces <pgsql-interfaces@postgresql.org>
Subject: typlen field in the pg_type table
Date: Thu, 08 Jul 2004 14:29:41 -0400
Message-ID: <40ED9295.8C83980A@noaa.gov> (raw)

For each table in my database, I am trying to extract the column name,
column type and column length from the system catalog tables.  I am able
to get the column name from the pg_attribute table and the column type
from the pg_type table.  However, I am having a problem extracting the
length of character columns from the typlen field of the pg_type table.

For example, I have a column defined as a char(20).  The column type is
set to "bpchar" but the typlen value for this column is -1.  The
documentation says that a value of -1 indicates "... has a length
word".  Can I extract the length of the field (in this case 20) from any
field in the system catalog tables?

In the documentation (Section 43.29) for the typlen field, it says "...
for a variable-length type, typlen is negative".  In Section 10.4, Item
3 says "... fixed-length type(e.g., char ...".  All of the char columns
in my database have typlen = -1.  IS A CHAR FIELD CONSIDERED A
FIXED-LENGTH OR VARIABLE-LENGTH TYPE BY POSTGRESQL?

Paul Tilles




Message-ID: <40ED9295.8C83980A@noaa.gov>
Permalink:  ../40ED9295.8C83980A@noaa.gov/
Also on:    postgresql.org/message-id/40ED9295.8C83980A@noaa.gov

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-interfaces@postgresql.org
  Cc: Paul.Tilles@noaa.gov
  Subject: Re: typlen field in the pg_type table
  In-Reply-To: <40ED9295.8C83980A@noaa.gov>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox