Gabriel Hermes Colina Zambra escribió:
Resulta que actualice a 8.3 y hubo dos funciones que tuve que tocar para
que siguieran funcionando.

Paso a explicar.

Asi es como quedo en 8.3

CREATE OR REPLACE FUNCTION "central"."fnc_buscocliente" (varchar) RETURNS SETOF 
"central"."clientes" AS
$body$
select * from central.clientes where id_cliente::varchar = $1 or ruc = $1
$body$
LANGUAGE 'sql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER
COST 100 ROWS 1000;

Asi era

CREATE OR REPLACE FUNCTION "central"."fnc_buscocliente" (varchar) RETURNS SETOF 
"central"."clientes" AS
$body$
select * from central.clientes where id_cliente = $1 or ruc = $1
$body$
LANGUAGE 'sql'
VOLATILE
CALLED ON NULL INPUT
SECURITY INVOKER;

Bueno, Ruc es varchar y id_cliente es integer, en 8.2 el parametro podia 
comparar el parametro varchar en id_cliente sin problemas, siendo esta 
permisividad muy comoda.

Personalmente creo que es mejor no ser permisivo, pero me lleve una sorpresa 
cuando mi aplicacion anunciaba un error en la busqueda y habia cambiado su 
comportamiento por que cambie el servidor.

A que otros cambios del estilo debo prestar atencion para adelantarme a 
problemas de migracion, donde puedo encontrar info al respecto.


Otra cosa COST 100 ROWS 1000, no es soportado por 8.2, o por lo menos no con el 
que uso en un cliente, pues genere una funcion en 8.3 y cuando copie el ddl y 
lo ejecute en 8.2, ups, tuve que ver por que no caminaba y esta era la causa.

Agradezco desde ya algun comentario sobre estos puntos, pues de momento estoy 
muy saturado y recurro al foro para actualizarme.

Gracias y disculpen las molestias

Atte.
Gabriel Colina







      ¡Sé el Bello 51 de People en Español! ¡Es tu oportunidad de Brillar! Sube 
tus fotos ya. http://www.51bello.com/
--
TIP 7: no olvides aumentar la configuración del "free space map"
Hola, en 8.3 ya no "castea", en forma automática de char a nro.


Saludos Fernando
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a