Álvaro estoy de acuerdo contigo, solo que esta es una cosa muy especial que estoy haciendo y escapa totalmente del mundo transaccional tradicional. Finalmente lo que hice fue un While que llama consultas con dblink.

SELECT c INTO VAR_TIME FROM dblink('myconn','INSERT INTO times(current,gameid,timekindid) VALUES(True,'||VAR_GAME||','||VAR_TIEMPO||') RETURNING id') AS id(c int);

El While se mantiene andando siempre como una especie de demonio. Ahora voy a meterle carga simulada para ver cómo se comporta bajo estrés en cuanto a performances e integridad de la data.

Por ultimo te comento que en este caso en particular no quiero que se produzca un rollback nunca ya que justamente para el proyecto la idea es que los datos siempre reflejen hasta donde llego el proceso aunque este sea incompleto en cuanto al contenido de los datos.

Voy a tratar comunicar los resultados a la lista con un ejemplo real del proyecto. Claro si es que los resultados son buenos ;)

Gracias a todos.



El 14-03-2010 10:47, Alvaro Herrera escribió:
noXat escribió:

Función:


WHILE X= True LOOP
     INSERT INTO padre(lo_que_sea) VALUES('eee') RETURNING id INTO VAR_ID;
     RAISE NOTICE 'CREO LLAVE VAR_ID;
     PERFORM pg_sleep(60);
END Loop;
No te recomiendo esto.  Vas a tener una transacción abierta
indefinidamente, lo cual es un problema muy severo para VACUUM.  Te
recomiendo que escribas el loop en un programa cliente que abra y cierre
una nueva transacción para cada iteración del bucle.





---- ADVERTENCIA ---- La información contenida en este correo electrónico, y en 
su caso, cualquier fichero anexo al mismo, son de carácter privado y 
confidencial, y se encuentra protegida por la ley N° 19628 y/o por los 
contratos de confidencialidad firmados con el emisor, siendo para uso exclusivo 
de su destinatario. Si usted no es el destinatario correcto, el empleado o 
agente responsable de entregar el mensaje al destinatario, o ha recibido esta 
comunicación por error, le informamos que está totalmente prohibida cualquier 
divulgación, distribución o reproducción de esta comunicación según la 
legislación vigente y le rogamos que nos lo notifique inmediatamente, 
procediendo a su destrucción sin continuar su lectura.

Responder a