Hi,

I had no try wheter this solves your problem, but have you conciddered using
an array or a self-written fcn which dicards your results
i.E.  SELECT my_discard_but_last( q1(), q2(), q3());
or   SELECT ARRAY[ q1(), q2(), q3() ];
or  SELECT ROW(q1(), q2(), q3()) as my_tripel_type;

Have you considdered CASTs?

These are just ideas

|-----Original Message-----
|From: Jan B. [mailto:[EMAIL PROTECTED]
|Sent: Sonntag, 22. Mai 2005 11:24
|To: pgsql-sql@postgresql.org
|Subject: [SQL] Calling Functions in RULEs
|
|
|Hello,
|
|I would like to call multiple PL/pgSQL procedures (i.e. functions 
|returning void) from INSERT, UPDATE and DELETE RULEs.
|
|Using "SELECT some_procedure();" is a possible way to do that, but it 
|causes a dummy result table to be delivered to the application 
|invoking 
|the INSERT/UPDATE/DELETE. When using multiple SELECTs to call multiple 
|functions inside the RULE, multiple result tables will be delivered to 
|the application, which is very unhandy and causes trouble especially 
|when using asynchronous command processing. Though "psql" does 
|only show 
|the last result table, all dummy result tables have to be fetched by 
|PGgetResult(), when using asynchronous mode with libpq.
|
|Is there any tidy way to call a void-function inside a RULE without 
|creating a result table that is passed to the application?
|Using a command like "UPDATE dummy_table SET dummy=1 WHERE 
|some_procedure() NOTNULL;" would work, but that would be very dirty.
|
|Does a command like "PERFORM" (from PG/pgSQL) exist in SQL too, which 
|discards the (void) result of the function call?
|
|
|Thanks for helping
|
|Jan Behrens
|||
|
|---------------------------(end of 
|broadcast)---------------------------
|TIP 2: you can get off all lists at once with the unregister command
|    (send "unregister YourEmailAddressHere" to 
|[EMAIL PROTECTED])
|

---------------------------(end of broadcast)---------------------------
TIP 7: don't forget to increase your free space map settings

Reply via email to