El jue, 15-07-2010 a las 13:02 -0400, Aldrin Martoq escribió:
> On Jul 15, 2010, at 10:03 AM, Franco Catrin L. wrote:
> > El mié, 14-07-2010 a las 17:16 -0400, Aldrin Martoq escribió:
> >> On Jul 14, 2010, at 3:14 PM, Franco Catrin L. wrote:
> >>> Eso es lo que se ve por fuera, pero el día en que inventen un SELECT que
> >>> ocupe cero bytes está lejos aún.
> >>> Lectura recomendada:
> >>> http://www.joelonsoftware.com/articles/LeakyAbstractions.html
> >> Yo difiero de este pensamiento. La capa extra (en este caso, la base de 
> >> datos) debe ser lo suficientemente robusta para no gotear errores 
> >> inesperados, pues es quien tiene toda la información de saber qué paso 
> >> realmente.
> > Mi mirada al documento es respecto a cómo las abstracciones pueden jugar
> > en contra cuando no sabes qué está pasando realmente por debajo, algo
> > que queda claro al leer los comentarios en este thread.
> 
> > Un buen ejemplo que da el autor es cuando recorres una estructura de
> > datos y perfectamente el programador puede recorrerla de una forma que
> > el rendimiento se degrade.
> > Las "abstracciones que gotean" no son un error, son un hecho.  
> 
> No, eso se llama usar la herramienta adecuada. Si estas usando un software 
> para lo que no está hecho, obvio que te vas a topar con cosas para las cuales 
> no estaba preparado.

No entiendo la relación?  Leíste el artículo completo?

> Si volvemos al tema original, el error de postgresql es algo que no espero de 
> una base de datos (bueno, en realidad puede fallar pero el mensaje te deja de 
> manos cruzadas). Y eso independiente de cómo este hecho por debajo.

Por qué no? Es una situación de excepción, al igual que cuando el
cliente te avisa que no se puede conectar a la base de datos.

Si te fijas, el error dice que no pudo obtener la memoria que necesitaba
para realizar la operación, algo que siempre puede suceder.  En este
caso es claro que no se justifica y el motor se confundió al estimar el
tamaño, pero en el normal de los casos sí debería retornar una excepción
cuando no puede hacer lo qué le estás pidiendo.

ERROR:  invalid memory alloc request size 1818585462

Puesto de otra forma, qué hubieras esperado que te informara el servidor
si no hay suficiente memoria para realizar la operación?  Datos
inventados?

Saludos
-- 
Franco Catrin L. http://www.tuxpan.com/fcatrin
TUXPAN Software S.A.

Responder a