On Wed, 2002-05-29 at 01:41, Tom Lane wrote: > > > Is it a good idea to provide an example (such as the above), or should I > > just try and describe the behaviour? > > Examples are generally good things ...
OK, the attached documentation patch provides some simple examples of use of tablename as a parameter, %ROWTYPE and %TYPE. In the end I decided that the documentation is literally correct, but hard to follow without any examples explicitly showing the use of a table name as a parameter. Cheers, Andrew. -- -------------------------------------------------------------------- Andrew @ Catalyst .Net.NZ Ltd, PO Box 11-053, Manners St, Wellington WEB: http://catalyst.net.nz/ PHYS: Level 2, 150-154 Willis St DDI: +64(4)916-7201 MOB: +64(21)635-694 OFFICE: +64(4)499-2267 Are you enrolled at http://schoolreunions.co.nz/ yet?
*** doc/src/sgml/plsql.sgml 2002/05/03 04:11:07 2.58 --- doc/src/sgml/plsql.sgml 2002/05/30 10:38:56 *************** *** 371,376 **** --- 371,379 ---- user_id INTEGER; quantity NUMERIC(5); url VARCHAR; + myrow tablename%ROWTYPE; + myfield tablename.fieldname%TYPE; + arow RECORD; </programlisting> </para> *************** *** 448,453 **** --- 451,465 ---- -- Some computations here END; ' LANGUAGE 'plpgsql'; + + + CREATE FUNCTION use_many_fields(tablename) RETURNS TEXT AS ' + DECLARE + in_t ALIAS FOR $1; + BEGIN + RETURN in_t.f1 || in_t.f3 || in_t.f5 || in_t.f7; + END; + ' LANGUAGE 'plpgsql'; </programlisting> </para> </sect2> *************** *** 491,496 **** --- 503,519 ---- row could be from a view). The fields of the row type inherit the table's field size or precision for data types such as <type>char(n)</type>. + <programlisting> + CREATE FUNCTION use_two_tables(tablename) RETURNS TEXT AS ' + DECLARE + in_t ALIAS FOR $1; + use_t table2name%ROWTYPE; + BEGIN + SELECT * INTO use_t FROM table2name WHERE ... ; + RETURN in_t.f1 || use_t.f3 || in_t.f5 || use_t.f7; + END; + ' LANGUAGE 'plpgsql'; + </programlisting> </para> </sect2>
---------------------------(end of broadcast)--------------------------- TIP 2: you can get off all lists at once with the unregister command (send "unregister YourEmailAddressHere" to [EMAIL PROTECTED])