On 4/16/2012 4:11 PM, Tom Lane wrote:
Bill MacArthur<webmas...@dhs-club.com> writes:
I have a view "configurations.tp_transactions" which is a blend of many tables using
INNER and LEFT JOINs. I want to populate a temp table from which I can obtain the data and
programmatically write queries to operate on that data using certain PLPGSQL functions in a uniform
fashion. I have several functions which all expect a single argument of the type
"configurations.tp_transactions".
I think you would need to create the temp table as a child of the main
table for this to work. As you're doing it, the rowtype of the temp
table is independent of the main (and the fact that they happen to have
the same columns is NOT good enough to make it acceptable to a function
declared to take the main table's rowtype).
regards, tom lane
I have tried this but no go:
network=# create temp table chl() inherits (configurations.tp_transactions);
ERROR: inherited relation "tp_transactions" is not a table
This does not work either:
network=> CREATE TEMP TABLE myt OF configurations.tp_transactions;
CREATE TABLE
network=> \d myt
Table "pg_temp_11.myt"
Column | Type | Modifiers
---------------+----------------------+-----------
id | integer |
<snip>
amount | numeric |
pp_value | numeric |
Typed table of type: configurations.tp_transactions
network=> insert into myt select * from configurations.tp_transactions where
trans_id=920787;
INSERT 0 1
network=> select configurations.myself(myt.*) from myt;
ERROR: function configurations.myself(myt) does not exist
LINE 1: select configurations.myself(myt.*) from myt;
^
HINT: No function matches the given name and argument types. You might need to
add explicit type casts.
network=> select configurations.myself(myt.*) from
configurations.tp_transactions myt where trans_id=920787;
myself
--------
12
(1 row)
--
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs