X-Original-To: pgsql-interfaces-postgresql.org@localhost.postgresql.org Received: from localhost (unknown [200.46.204.144]) by svr1.postgresql.org (Postfix) with ESMTP id EA37CD1B267 for ; Thu, 8 Jul 2004 15:29:47 -0300 (ADT) Received: from svr1.postgresql.org ([200.46.204.71]) by localhost (av.hub.org [200.46.204.144]) (amavisd-new, port 10024) with ESMTP id 16846-07 for ; Thu, 8 Jul 2004 18:29:46 +0000 (GMT) Received: from ssmcmail.nems.noaa.gov (ssmcmail.nems.noaa.gov [205.156.4.221]) by svr1.postgresql.org (Postfix) with ESMTP id 19BE4D1B23F for ; Thu, 8 Jul 2004 15:29:43 -0300 (ADT) Received: from noaa.gov ([140.90.8.138]) by ssmcmail.nems.noaa.gov (Netscape Messaging Server 4.15) with ESMTP id I0JQ1H00.B66 for ; Thu, 8 Jul 2004 14:29:41 -0400 Message-ID: <40ED9295.8C83980A@noaa.gov> Date: Thu, 08 Jul 2004 14:29:41 -0400 From: Paul Tilles Organization: DOC/NOAA/NWS - National Weather Service X-Sender: "Paul Tilles" X-Mailer: Mozilla 4.77 [en]C-CCK-MCD (Windows NT 5.0; U) X-Accept-Language: en MIME-Version: 1.0 To: interfaces Subject: typlen field in the pg_type table Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: by amavisd-new at hub.org X-Spam-Status: No, hits=0.0 tagged_above=0.0 required=5.0 tests= X-Spam-Level: X-Archive-Number: 200407/20 X-Sequence-Number: 5026 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