Re: problema con parametros timestamp en plpgsql

From: gorka <glana(at)cestel(dot)es>
To: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: problema con parametros timestamp en plpgsql
Date: 2009-06-18 09:50:45
Message-ID: 4A3A0DF5.40300@cestel.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Muchas gracias por la ayuda, ahora la ejecucion de la funcion va
muchisimo mejor.

Alvaro Herrera escribió:
> gorka escribió:
>
>> Hola:
>>
>> El problema es que esta función es llamada desde Java, siendo recogida
>> en un resultset dentro del metodo java, y no se como se puede recoger
>> desde java un setof xxxx. Además a estas alturas, con el producto ya en
>> producción, no se yo si la gente de Java va a estar dispuesta a cambiar
>> la forma de obtener los datos.
>>
>
> Ugh.
>
> Bueno, quizás funcione de todas formas. La idea es que en lugar de
> hacer
>
> OPEN foo CURSOR FOR ... WHERE fecha < param1 AND fecha > param2
>
> hagas esto:
>
> EXECUTE 'OPEN foo CURSOR FOR ... WHERE fecha < ' || param1 || ' AND fecha > ' || param2'
>
> La diferencia es que en el segundo caso, los valores son interpolados al
> momento de crear el plan, en cambio en el primer caso se hace el plan y
> después se entregan los valores de los parámetros.
>
> De hecho puedes conseguir imitar esto directamente en SQL para que veas
> que se estropea el plan, de la siguiente forma:
>
> PREPARE foo(timestamp, timestamp) AS SELECT bla, bla ... WHERE fecha < $1 AND fecha > $2
> EXPLAIN ANALYZE EXECUTE foo(fecha1, fecha);
>
> Y compara el plan que obtienes ejecutando la consulta directamente con
> los valores:
>
> EXPLAIN ANALYZE SELECT bla, bla ... WHERE fecha < 'fecha1' AND fecha > 'fecha2'
>
>

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2009-06-18 13:15:55 RE: Bloqueo en registro-tabla
Previous Message Agustin Ignacio Genoves 2009-06-18 03:03:49 Re: FTS