Re: Casts en parametros Int2 a funciones

From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Oswaldo Hernández <listas(at)soft-com(dot)es>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Casts en parametros Int2 a funciones
Date: 2005-01-09 20:10:26
Message-ID: 20050109201026.GA1903@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

On Sun, Jan 09, 2005 at 12:53:02PM +0100, Oswaldo Hernández wrote:

> Pero, si creo esa misma funcion con uno o ambos enteros de tipo Int2 al
> realizar la misma llamada da el siguiente error
>
> function grupo_get_hijos("unknown", integer, integer, "unknown") does not exist
>
> y me obliga a realizar la llamada a esta haciendo un cast en los
> parámetros. Esto no sucede si declaro los parametros tipo Int4 o Int8.
>
> ¿Porque ocurre esto?, ¿Es un bug?

No se si sea exactamente un bug; es un artefacto del sistema extensible
de tipos. Me parece (no estoy seguro) que no esta presente en 8.0,
porque hubo un cambio importante en la convertibilidad entre tipos,
aunque no recuerdo si aplica a este caso.

Observa que cuando habla de "integer" se refiere concretamente a "int4".
int2 e int8 son dos tipos diferentes. int4 puede convertirse a int8 sin
problemas, pero no a int2 porque corres el riesgo de que haya
"overflow". Probablemente este hecho explica de alguna manera que
funcione con int8 pero no con int2.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
"Hay quien adquiere la mala costumbre de ser infeliz" (M. A. Evans)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Juan Pablo Espino 2005-01-09 20:24:50 lenguajes procedurales
Previous Message Alvaro Herrera 2005-01-09 16:39:16 Re: migracion de postgresql 7.0 a 7.4