On Mar 14, 2007, at 7:25 pm, Tom Lane wrote:
Sure: use a table. What was the objection to temp tables exactly?
My boss is under the impression that calling the procedure twice on the same connection creates a name conflict for the temporary table.
Also I'm unsure how the use of temporary tables will affect the running of the query. This function will be called up to 400 times by a wrapping function that needs to complete quickly (relatively - the calculations need to return in a few seconds). I haven't had chance to read much about PG temp tables yet, so I don't know how the implementation works. Are small tables stored in RAM, or does creating a temporary table always force a disk write?
Sorry my sheer ignorance here. I have already written a working, fully tested - albeit unoptimised - implementation of this algorithm in Ruby, accessible as a basic (HTTP GET) web service. However, a developer here believes that the overhead of an HTTP connection over our gigabit LAN will add too much to the (> 1 second) running time of the calculations. This means that for political reasons we are forced to rewrite it as a stored procedure that we can call directly from application code. The project is urgent, the aforementioned developer is now on holiday, and so my non-developer boss is scrabbling to learn PL/pgsql and I am forced to bombard the list with inane questions. Thanks for your patience :)
Ashley