access computed field of RECORD variable

From: Steve White <swhite(at)aip(dot)de>
To: pgsql-general(at)postgresql(dot)org
Subject: access computed field of RECORD variable
Date: 2010-01-05 13:53:50
Message-ID: 20100105135350.GD27866@cashmere.aip.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

I ran into a roadblock at the very bottom of a fairly large database
design implementation. It will be at least messy to fix, unless there is
a neat solution.

The roadblock is:

There is a record, which may be from any of a set of similar databases.
Field names for this record are computed as strings. Using these strings,
I need to access fields of the record.

But I can't find the syntax for it.

Now, if a record variable is a known row type, I can get a field of a
computed name.
For a generic RECORD I can get a field by putting an explicit name the code,
(rec).FieldName1
But can one get the value of a computed field from a generic RECORD?

With
rec RECORD;
field TEXT;

The following all fail:

res := rec.field; -- ERROR: record "rec" has no field "field"
res := (rec.field); -- ERROR: record "rec" has no field "field"
res := (rec).field; -- ERROR: syntax error at or near "$2"
res := rec.(field); -- ERROR: syntax error at or near "("
res := rec."FieldName1"; -- gets field, but isn't what is needed

I also tried numerous other things that were doomed to fail.

Find an example file attached. Just "\i" it and play with the possibilites.

Thanks!

--
| - - - - - - - - - - - - - - - - - - - - - - - - -
| Steve White +49(331)7499-202
| e-Science / AstroGrid-D Zi. 35 Bg. 20
| - - - - - - - - - - - - - - - - - - - - - - - - -
| Astrophysikalisches Institut Potsdam (AIP)
| An der Sternwarte 16, D-14482 Potsdam
|
| Vorstand: Prof. Dr. Matthias Steinmetz, Peter A. Stolz
|
| Stiftung privaten Rechts, Stiftungsverzeichnis Brandenburg: III/7-71-026
| - - - - - - - - - - - - - - - - - - - - - - - - -

Attachment Content-Type Size
example.sql text/plain 1.5 KB

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Dimitri Fontaine 2010-01-05 13:56:35 Re: converting tables to XML and back
Previous Message Pavel Stehule 2010-01-05 13:45:01 Re: Large tables, ORDER BY and sequence/index scans