Skip site navigation (1) Skip section navigation (2)

Fwd: [PATCHES] Libpq support for precision and scale]

From: Fernando Nasser <fnasser(at)cygnus(dot)com>
To: pgsql-interfaces(at)postgresql(dot)org
Subject: Fwd: [PATCHES] Libpq support for precision and scale]
Date: 2001-11-29 20:16:26
Message-ID: 3C06979A.7D71FA51@cygnus.com (view raw or flat)
Thread:
Lists: pgsql-interfaces
This is a patch that was posted some time ago to pgsql-patches and
no one has commented on it.  Tom believes we should cross post it
here (our apologies for those who already seem it in the PATCHES list).

It adds something that JDBC has that is not present in libpq (see below).
Is it OK for inclusion?

Regards to all and thanks for your time,
Fernando


-------- Original Message --------
From: Fernando Nasser <fnasser(at)redhat(dot)com>
Subject: [PATCHES] Libpq support for precision and scale
To: pgsql-patches(at)postgresql(dot)org

Some programs like utilities, IDEs, etc., frequently need to know the
precision and scale of the result fields (columns).  Unfortunately
libpq does not have such routines yet (JDBC does).

Liam and I created a few ones that do the trick, as inspired by the
JDBC code. The functions are:

char *PQftypename(const PGresult *res, int field_num);

Returns the type name (not the name of the column, as PQfname do).


int PQfprecision(const PGresult *res, int field_num);
int PQfscale(const PGresult *res, int field_num);

Return Scale and Precision of the type respectively.


Most programs won't need this information and may not be willing
to pay the overhead for metadata retrieval. Thus, we added
an alternative function to be used instead of PQexec if one
wishes extra metadata to be retrieved along with the query
results:

PGresult *PQexecIncludeMetadata(PGconn *conn, const char *query);

It provides the same functionality and it is used in exactly the
same way as PQexec but it includes extra metadata about the result
fields.  After this cal, it is possible to obtain the precision,
scale and type name for each result field.


The PQftypename function returns the internal PostgreSQL type name.
As some programs may prefer something more user friendly than the
internal type names, we've thrown in a conversion routine as well:

char *PQtypeint2ext(const char *intname);

This routine converts from the internal type name to a more user
friendly type name convention.


More details are in the patch to the SGML documentation that is 
part of the patch (attached).


--
Liam Stewart <liams(at)redhat(dot)com>
Fernando Nasser <fnasser(at)redhat(dot)com>

Attachment: nsmail3C06973D0D328A3
Description: text/plain (148 bytes)
Attachment: nsmail3C02932C05228A3
Description: text/plain (152 bytes)
Attachment: LIBPQSGML.PATCH
Description: text/plain (4.7 KB)
Attachment: LIBPQ.PATCH
Description: text/plain (16.8 KB)

pgsql-interfaces by date

Next:From: Tom LaneDate: 2001-11-29 20:47:51
Subject: Re: Can a windows DLL have more than one process attached?
Previous:From: Mikhail TerekhovDate: 2001-11-29 19:55:37
Subject: Re: Can a windows DLL have more than one process attached?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group