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