I propose we modify C functions for 7.2. ( I'll volunteer to do as much as I can figure out ;-) (1) C functions should be able to return multiple values. (2) A setup and breakdown function should be able to be called surrounding the query set in which a function is called. This allows constructors and destructors. (3) A function should be able to tell Postgres how to use it. For instance: select * from table where column = function(); Should be able to instruct Postgres to either take the value returned and search that one value (allowing index match against the value), or perform a table scan against the function each time. Both behaviors are important. Currently a function seems to force a table scan. Estimates: 1 may be difficult. 2 should be easy enough. 3, depending on the code dependencies, could either be very hard or easy. (my guess is that it would be hard) -- http://www.mohawksoft.com