Thread: 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 >