Hello, I am hoping that I'm just missing some kind of syntax tweak, but after experimenting a bit, I cannot seem to get this working.
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 am running 9.0.5 on CentOS 5 64 bit Here is the schema of "configurations.tp_transactions" network=> \d configurations.tp_transactions View "configurations.tp_transactions" Column | Type | Modifiers ---------------+----------------------+----------- id | integer | spid | integer | sponsor_mtype | character varying(5) | sponsor_spid | integer | membertype | character varying | trans_type | smallint | trans_id | integer | trans_date | date | discount_amt | numeric(6,2) | cv_mult | real | reb_mult | real | comm_mult | real | rebate | numeric | reb_com | numeric(5,4) | pp | numeric(6,5) | cap | integer | receivable | numeric(8,2) | ma_id | integer | ma_spid | integer | ma_mtype | character varying(5) | amount | numeric | pp_value | numeric | network=> SELECT * INTO TEMP TABLE myt FROM configurations.tp_transactions WHERE membertype <> 'x' AND configurations.tp_transactions.trans_id IN (920787); SELECT 1 network=> \d myt Table "pg_temp_47.myt" Column | Type | Modifiers ---------------+----------------------+----------- id | integer | spid | integer | sponsor_mtype | character varying(5) | sponsor_spid | integer | membertype | character varying | trans_type | smallint | trans_id | integer | trans_date | date | discount_amt | numeric(6,2) | cv_mult | real | reb_mult | real | comm_mult | real | rebate | numeric | reb_com | numeric(5,4) | pp | numeric(6,5) | cap | integer | receivable | numeric(8,2) | ma_id | integer | ma_spid | integer | ma_mtype | character varying(5) | amount | numeric | pp_value | numeric | network=> \df configurations.myself List of functions Schema | Name | Result data type | Argument data types | Type ----------------+--------+------------------+--------------------------------+-------- configurations | myself | integer | configurations.tp_transactions | normal (1 row) 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) I also tried creating the temp table first using this syntax and then inserting into it, but function still did not recognize the type. network=> CREATE TEMP TABLE myt OF configurations.tp_transactions; CREATE TABLE network=> \d myt Table "pg_temp_11.myt" Column | Type | Modifiers ---------------+----------------------+----------- id | integer | spid | integer | sponsor_mtype | character varying(5) | sponsor_spid | integer | membertype | character varying | trans_type | smallint | trans_id | integer | trans_date | date | discount_amt | numeric(6,2) | cv_mult | real | reb_mult | real | comm_mult | real | rebate | numeric | reb_com | numeric(5,4) | pp | numeric(6,5) | cap | integer | receivable | numeric(8,2) | ma_id | integer | ma_spid | integer | ma_mtype | character varying(5) | 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