From: | Rubén da Silva <ruben(at)ozonomultimedia(dot)com> |
---|---|
To: | postgresql <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Funcion inet2int - error |
Date: | 2006-12-01 11:40:55 |
Message-ID: | 457014C7.6090405@ozonomultimedia.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
He creado una función para pasar de inet a entero largo (int8):
==============
CREATE OR REPLACE FUNCTION inet2int(inet "varchar")
RETURNS information_schema.cardinal_number AS
$BODY$ip = args[0]
octetos = ip.split(".")
A=256*256*256
B=265*256
C=256
entero = long(octetos[0])*A + long(octetos[1])*B + long(octetos[2])*C +
long(octetos[3])
return entero$BODY$
===============
Probando por ejemplo con 212.51.32.201 me devuelve el error:
ERROR: value "3560238025" is out of range for type integer
Ese valor y mayores están en la BD como int8.
-Es fallo de plpython?
Ejecutando la funcion fuera de postgres devuelve perfectamente el valor.
-Postgres no se espera un int8?
P.D. La he creado porque no encontré una existente que lo haga. Si la
hay por favor avisadme.
Un saludo,
Rubén
From | Date | Subject | |
---|---|---|---|
Next Message | Miguel Ortega | 2006-12-01 12:19:09 | Re: arman cadenas |
Previous Message | Eliana Gutierrez | 2006-12-01 03:32:57 | Re: Check columnname in a table |