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])

Reply via email to