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