Re: diferencia entre funciones

From: Arturo Munive <arturomunive(at)gmail(dot)com>
To: Jaime Casanova <systemguards(at)gmail(dot)com>
Cc: Postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: diferencia entre funciones
Date: 2007-06-26 13:40:50
Message-ID: 46811762.20002@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Jaime Casanova escribió:
> On 6/25/07, Arturo Munive <arturomunive(at)gmail(dot)com> wrote:
>> Disculpen la "ingenuidad" de mi pregunta, pero ahi va
>>
>> ¿Hay alguna diferencia en cuanto a rendimiento o algun otro factor al
>> escribir funciones SQL contra escribir funciones en PL/pgSQL?
>> es decir hay alguna razón para preferir un tipo de funciones sobre otro?
>>
>
> leyendo http://www.postgresql.org/docs/8.2/static/xplang.html, se me
> ocurre que la respuesta seria porque los lenguajes procedurales
> necesitaran una etapa adicional de parse/analysis y determinar que
> debe ser enviado al servidor como SQL para que sea ejecutado y que se
> queda para ser ejecutado por el handler (manejador del lenguaje)
>
>> cuando debo escribir una funcion en SQL y cuando en PL/pgSQL?
>>
>
> cuando necesites hacer algo que vaya mas alla de las capacidades de SQL
>
mmm entonces las funciones los lenguajes procedurales logran cosas mas
complejas que el propio sql

osea que escribir

CREATE FUNCTION una_funcion (param varchar) RETURNS SETOF varchar AS
$body$
SELECT
t1.campo1 as c1,
t2.campo1 as c2
FROM
tabla1 as t1,
tabla2 as t2
WHERE
t2.otro_campo = p
AND t1.campo3 = t2.campo3
$body$
LANGUAGE 'sql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;

es lo mismo que escribir un vista con la misma estructura

Create View vista as

SELECT
t1.campo1 as c1,
t2.campo1 as c2,
t2.otro_campo as c3
FROM
tabla1 as t1,
tabla2 as t2
WHERE
t1.campo3 = t2.campo3

y luego hacer un select * from vista where c3 = p

Digo lo mismo por que el hecho de escribir esa consulta en una función
no me otorga mas eficiencia ni otra característica diferente

Es así, o entendí mal?

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Arturo Munive 2007-06-26 13:49:44 Re: diferencia entre funciones
Previous Message Fabian Pineda 2007-06-26 10:15:28 Re: funcion desde el CRON