From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | des(at)des(dot)no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=) |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: tablename type? |
Date: | 2004-07-28 16:37:26 |
Message-ID: | 23441.1091032646@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
des(at)des(dot)no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=) writes:
> Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> writes:
>> des(at)des(dot)no (=?iso-8859-1?q?Dag-Erling_Sm=F8rgrav?=) writes:
>>> ERROR: type tablename does not exist
>> The example is just an example. Create an actual table and use its
>> name.
> If you read the example, you will see that the function is clearly
> intended to operate on a table whose name is specified as a parameter
> to the function, and that "tablename" is used as the type name for
> that parameter, and not a placeholder for an actual table name.
No, it's you who are misunderstanding. The example is showing use of a
composite-type parameter (ie, a row value). Perhaps fleshing out the
example will make it clearer:
regression=# create table tablename(f1 text, f3 text, f5 text, f7 text);
CREATE TABLE
regression=# insert into tablename values('a','b','c','d');
INSERT 577890 1
regression=# CREATE FUNCTION concat_selected_fields(tablename) RETURNS text AS '
regression'# DECLARE
regression'# in_t ALIAS FOR $1;
regression'# BEGIN
regression'# RETURN in_t.f1 || in_t.f3 || in_t.f5 || in_t.f7;
regression'# END;
regression'# ' LANGUAGE plpgsql;
CREATE FUNCTION
regression=# select * from tablename t;
f1 | f3 | f5 | f7
----+----+----+----
a | b | c | d
(1 row)
regression=# select concat_selected_fields(t.*) from tablename t;
concat_selected_fields
------------------------
abcd
(1 row)
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Chris Gamache | 2004-07-28 16:42:38 | Tsearch2 dump/reload problem |
Previous Message | Scott Marlowe | 2004-07-28 16:08:32 | Re: altering a table to set serial function |