Re: funcion plpgsql .... corrupcion de indice

From: Felipe de Jesús Molina Bravo <fjmolinabravo(at)gmail(dot)com>
To: "Silvio Quadri" <silvioq(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: funcion plpgsql .... corrupcion de indice
Date: 2008-12-12 20:43:24
Message-ID: c31298e50812121243r57e264a3g2320bafa7d0c2cfd@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El 12 de diciembre de 2008 13:31, Felipe de Jesús Molina Bravo <
fjmolinabravo(at)gmail(dot)com> escribió:

>
>
> El 12 de diciembre de 2008 12:50, Silvio Quadri <silvioq(at)gmail(dot)com>escribió:
>
>> El día 12 de diciembre de 2008 16:47, Alvaro Herrera
>> <alvherre(at)alvh(dot)no-ip(dot)org> escribió:
>> > Felipe de Jesús Molina Bravo escribió:
>> >
>> >> entonces mi problema es el indice.... esta corrupto ... pero estoy ante
>> una
>> >> limitante de postgres o ante un error de programacion?
>> >
>> > No es una limitante, creo yo; más parece un bug. Estuve mirando tu
>> > código y la verdad es que me quedé algo clavado mirando la función
>> > recursiva que obtiene el MCD. ¿Estás seguro que funciona correctamente?
>>
>>
>
>> >
>> > Lo otro es que no me queda totalmente claro si las funciones de
>> > comparación para el btree están correctas. Parecen estarlo pero algún
>> > detalle puede estarse escapando ... por ej. no tengo totalmente claro si
>> > la función cmp() debería devolver un valor distinto de 0 cuando se pasan
>> > dos racionales que son iguales en valor absoluto pero se escriben de
>> > maneras distintas (1/2 versus 2/4 por ej.) Quizás tu problema vaya por
>> > ese lado.
>>
>> Podrías ver si funciona quitándo el calculador de MCD.
>> Si bien un medio te daría distinto a dos cuartos, podrías ver si el
>> inconveniente se genera al reducir las fracciones.
>> Silvio
>
>
> Muchas gracias por las ideas ... ya probe quitando el MCD y continua el
> problema ... voy a revisar a detalle las funciones de comparación ... antes
> de comparar se me ocurre reducir a su minima expresion cada racional ....
> gracias ....yo les comento...(escribiendo se me ocurrio esto ultimo)
>

ya probe lo que acorde y sigue igual ... en cuanta a las dudas de la macro
de cmp, segun yo esta correcta ...

#define Comparar(x,y) ((x)->num*(y)->den - (x)->den*(y)->num)

si x= 3/4 y= 6/8 entonces

Comparar(x,y)= (3*8) - (4*6) = 0

si x= 3/4 y= 6/8 entonces

segun yo es un comportamiento general.... pero ahora que pasa cuando

x=(57133/ 73908) y= (363669/470447)

Comparar = (57133*470447) - (73908*363669) = 26878048451 - 26878048452= -1

mi duda es .... alguna multiplicacion de este tipo podria causar algun
desbordamiento en el tipo de datos ... no creen? ....lo dudo pero que
piensan ....

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alvaro Herrera 2008-12-12 20:59:12 Re: funcion plpgsql .... corrupcion de indice
Previous Message Alvaro Herrera 2008-12-12 19:54:21 Re: funcion plpgsql .... corrupcion de indice