Обсуждение: delayed input
I need to select all tuples from a table, but need them to be fetched with a constant delay (say 1 sec) between every consecutive tuples. The first idea that came up to my mind is to create a DelayedSeqScan operator, and put delay before returning the scanned tuple. Can I do this functionality using table functions? Regards, --h
Why not do this on the client side? I'm just curious as to the benfit of doing this on the server. On Tue, 19 Oct 2004 11:10:58 -0500, Hicham G. Elmongui <elmongui@cs.purdue.edu> wrote: > I need to select all tuples from a table, but need them to be fetched with a > constant delay (say 1 sec) between every consecutive tuples. > > The first idea that came up to my mind is to create a DelayedSeqScan > operator, and put delay before returning the scanned tuple. > > Can I do this functionality using table functions? > > Regards, > --h
Hicham G. Elmongui wrote: > I need to select all tuples from a table, but need them to be fetched with a > constant delay (say 1 sec) between every consecutive tuples. > > The first idea that came up to my mind is to create a DelayedSeqScan > operator, and put delay before returning the scanned tuple. > > Can I do this functionality using table functions? Could you not just use a cursor and fetch each row in turn based on some timer in your application? -- Richard Huxton Archonet Ltd
Use a cursor...
> I need to select all tuples from a table, but need them to be fetched
> with a
> constant delay (say 1 sec) between every consecutive tuples.
>
> The first idea that came up to my mind is to create a DelayedSeqScan
> operator, and put delay before returning the scanned tuple.
>
> Can I do this functionality using table functions?
>
> Regards,
> --h
>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/docs/faqs/FAQ.html
>
I need this for a side project. Is there a way to do something like this:
SELECT *
FROM DelayedTable('tablename', 5);
DelayedTable provides me with one tuple every 5 seconds.
Regards,
--h
"Hicham G. Elmongui" <elmongui@cs.purdue.edu> wrote in message
news:cl3eaj$1ggv$1@news.hub.org...
> I need to select all tuples from a table, but need them to be fetched with
a
> constant delay (say 1 sec) between every consecutive tuples.
>
> The first idea that came up to my mind is to create a DelayedSeqScan
> operator, and put delay before returning the scanned tuple.
>
> Can I do this functionality using table functions?
>
> Regards,
> --h
>
>
On Tue, Oct 19, 2004 at 01:44:34PM -0500, Hicham G. Elmongui wrote:
> I need this for a side project. Is there a way to do something like this:
>
> SELECT *
> FROM DelayedTable('tablename', 5);
You can probably build a sleep() function in C, and then use that to
cause delaying in a PL/pgSQL set-returning function. Something like
#include <postgres.h>
#include <fmgr.h>
PG_FUNCTION_INFO_V1(sleep);
Datum
sleep(PG_FUNCTION_ARGS)
{
int32 delay = PG_GETARG_INT32(0);
sleep(delay);
PG_RETURN_VOID();
}
--
Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
La web junta la gente porque no importa que clase de mutante sexual seas,
tienes millones de posibles parejas. Pon "buscar gente que tengan sexo con
ciervos incendiándose", y el computador dirá "especifique el tipo de ciervo"
(Jason Alexander)
Hicham G. Elmongui wrote:
> I need this for a side project. Is there a way to do something like this:
>
> SELECT *
> FROM DelayedTable('tablename', 5);
No, at my knowledge you'll obtain the first tuple only when
the function exit.
Regards
Gaetano Mendola
Well, it seems that i have to build the scan operator myself. Even the
FunctionScan will make all the function calls and stores the result in a
tuuplestore. So, all the delay will be occured only at the first function
invocation.
--h
"Alvaro Herrera" <alvherre@dcc.uchile.cl> wrote in message
news:20041019191943.GC5625@dcc.uchile.cl...
> On Tue, Oct 19, 2004 at 01:44:34PM -0500, Hicham G. Elmongui wrote:
> > I need this for a side project. Is there a way to do something like
this:
> >
> > SELECT *
> > FROM DelayedTable('tablename', 5);
>
> You can probably build a sleep() function in C, and then use that to
> cause delaying in a PL/pgSQL set-returning function. Something like
>
> #include <postgres.h>
> #include <fmgr.h>
>
> PG_FUNCTION_INFO_V1(sleep);
>
> Datum
> sleep(PG_FUNCTION_ARGS)
> {
> int32 delay = PG_GETARG_INT32(0);
> sleep(delay);
> PG_RETURN_VOID();
> }
>
> --
> Alvaro Herrera (<alvherre[a]dcc.uchile.cl>)
> La web junta la gente porque no importa que clase de mutante sexual seas,
> tienes millones de posibles parejas. Pon "buscar gente que tengan sexo con
> ciervos incendi�ndose", y el computador dir� "especifique el tipo de
ciervo"
> (Jason Alexander)
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 6: Have you searched our list archives?
>
> http://archives.postgresql.org
>