How get column-wise table info from an arbitrary query?

From: Kenneth Tilton <ktilton(at)mcna(dot)net>
To: pgsql-general General <pgsql-general(at)postgresql(dot)org>
Subject: How get column-wise table info from an arbitrary query?
Date: 2012-12-05 01:04:59
Message-ID: CAECCA8agjz9SDaRQmKhy2U=_id4827MvC_h7tvAhLoTfeh-uag@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

I am porting from MySQL some code that has to take an arbitrary query
involving joins and build up a dictionary (in an HLL talking to Postgres
over a socket) where each column name will be the key. The catch is that
there will be duplicate entries where two joined tables have the same
column such as "id", so I have to get the source table for each column.
Here is a sample query:

select * from providers p inner join provider_types pt on pt.id =
p.provider_type_id;

I actually figured out how to get the table OID which would suffice, but I
am porting MySQL code that could get fully qualified column names including
a table alias if that were used. We allow other code to look up values in
the dictionary with the alias as a prefix as a convenience, eg. "p.id" or "
pt.id".

I can easily fake this if we predefine a unique alias<->table pairing
(which we follow anyway), but if Postgres itself offers this it would be
that much cleaner. So:

Is there any way on an arbitrary query to determine column names qualified
by table aliases?

Thx, kt

--
Kenneth Tilton

*Director of Software Development*

*MCNA Dental Plans*
200 West Cypress Creek Road
Suite 500
Fort Lauderdale, FL 33309

954-730-7131 X181 (Office)
954-628-3347 (Fax)
1-800-494-6262 X181 (Toll Free)

ktilton(at)mcna(dot)net <glipari(at)mcna(dot)net> (Email)

www.mcna.net (Website)
CONFIDENTIALITY NOTICE: This electronic mail may contain information that
is privileged, confidential, and/or otherwise protected from disclosure to
anyone other than its intended recipient(s). Any dissemination or use of
this electronic mail or its contents by persons other than the intended
recipient(s) is strictly prohibited. If you have received this
communication in error, please notify the sender immediately by reply
e-mail so that we may correct our internal records. Please then delete the
original message. Thank you.

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Raymond O'Donnell 2012-12-05 01:11:42 Re: How get column-wise table info from an arbitrary query?
Previous Message Tomas Vondra 2012-12-04 23:56:10 Re: Permission denied in file_fdw (Windows)