Skip site navigation (1) Skip section navigation (2)

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 (view raw or flat)
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

pgsql-es-ayuda by date

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

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group