Received: from candle.pha.pa.us (root@s5-03.ppp.op.net [209.152.195.67]) by hub.org (8.8.8/8.7.5) with ESMTP id AAA26904; Fri, 24 Apr 1998 00:06:31 -0400 (EDT) Received: (from maillist@localhost) by candle.pha.pa.us (8.8.5/8.8.5) id AAA25030; Fri, 24 Apr 1998 00:05:31 -0400 (EDT) From: Bruce Momjian Message-Id: <199804240405.AAA25030@candle.pha.pa.us> Subject: Re: [HACKERS] Re: [INTERFACES] retrieving varchar size To: byronn@insightdist.com (Byron Nikolaidis) Date: Fri, 24 Apr 1998 00:05:30 -0400 (EDT) Cc: hannu@trust.ee, daveh@insightdist.com, pgsql-hackers@postgreSQL.org, pgsql-interfaces@postgreSQL.org In-Reply-To: <353FFC77.55A58CF5@insightdist.com> from "Byron Nikolaidis" at Apr 23, 98 10:44:07 pm X-Mailer: ELM [version 2.4 PL25] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit > > > > Bruce Momjian wrote: > > > > The problem with that theory is this. If the frontend application just > > > executes some random query, such as "select * from table", you really do not > > > know anything about what is coming back. You must rely on the little bit of > > > information the protocol gives you. In the case of Postgres, it gives you > > > the fieldname, datatype, and size for each column in the result. > > > Unfortunately, for varchar and char(n), the size reports -1. This is not > > > very helpful for describing the result set. > > > > > > Your above example works fine (in fact we use that already) when you know the > > > table and column name, as in metadata functions such as SQLColumns() in the > > > ODBC driver. > > > > Yep. We could pass back atttypmod as part of the PGresult. I can add > > that to the TODO list. Would that help? > > Yes, that would do it! > > Thank you for listening to our ravings on this issue. Added to TODO: * Add pg_attribute.atttypmod/Resdom->restypmod to PGresult structure This is a good suggestion. -- Bruce Momjian | 830 Blythe Avenue maillist@candle.pha.pa.us | Drexel Hill, Pennsylvania 19026 + If your life is a hard drive, | (610) 353-9879(w) + Christ can be your backup. | (610) 853-3000(h)