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
Views: Raw Message | Whole Thread | Download mbox | Resend email
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 Content-Type Size
LIBPQ.PATCH text/plain 16.8 KB
LIBPQSGML.PATCH text/plain 4.7 KB
nsmail3C02932C05228A3 text/plain 152 bytes
nsmail3C06973D0D328A3 text/plain 148 bytes

Browse pgsql-interfaces by date

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