Re: TYPE of TEMP table does not seem to get set
От | Bill MacArthur |
---|---|
Тема | Re: TYPE of TEMP table does not seem to get set |
Дата | |
Msg-id | 4F8C810C.6000408@dhs-club.com обсуждение исходный текст |
Ответ на | Re: TYPE of TEMP table does not seem to get set (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: TYPE of TEMP table does not seem to get set
|
Список | pgsql-bugs |
On 4/16/2012 4:11 PM, Tom Lane wrote: > Bill MacArthur<webmaster@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 populatea temp table from which I can obtain the data and programmatically write queries to operate on that data using certainPLPGSQL 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)
В списке pgsql-bugs по дате отправления: