Dave Cramer wrote:
> 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.