On Tue, Oct 03, 2006 at 17:35:55 +0000,
  [EMAIL PROTECTED] wrote:
> 
> My function will take all the above info about the hole and down_hole_survey 
> tables, and sample.hole_id and sample.depth_meters and will calculate the 
> coordinates.  I need to put these coordinates into sample.x , sample.y and 
> sample.z .
> 
> What I used to do was have one function that would return 3 values (x,y,z).  
> Then create 3 more functions that would call call the main function and pull 
> out the 3 values seperately to update the 3 seperate columns.  It works fine 
> but I have to call the main function 3 times which produces a slow 
> performance.
> 
> I hope that I explained it better this time.

If they are in the same table you can update all there in the same
update statement using syntax something like the following:
UPDATE sample SET x=(some expression), y=(some expression), z=(some expression)
  WHERE some condition;

Probably the simplest place to start is having your function do the update
rather than return the three values.
I think in 8.2 there will be an easier way to use the result of a function that
returns a row to update multiple columns in an update statement. (That
doesn't resu;t in calling the function three times.)

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend

Reply via email to