Ok, so one use case is to select a large number of rows and do some non-trivial operation on them.
I can see where getting the rows inside the server process ( ie some procedural language ) thereby reducing the round trip overhead would be beneficial. However how do you deal with the lack of control ? For instance what happens if you run out of memory while doing this ? I'm not sure about other DB'S but if you crash the procedural language inside postgres you will bring the server down.
It would seem to me that any non-trivial operation would be better handled outside the server process, even if it costs you the round trip.
Since a .NET language is operating effectively inside a VM it is pretty much impossible to bring down the server that way. Only a bug in the .NET runtime itself will do that. The C# try/catch/finally with .NET global execption last chance handlers will ensure the server and your code is well protected.
Cheers, Gary.
---------------------------(end of broadcast)--------------------------- TIP 8: explain analyze is your friend