pltcl - lastoid

Поиск
Список
Период
Сортировка
От bob@redivi.com
Тема pltcl - lastoid
Дата
Msg-id 20010726223122.A300@redivi.com
обсуждение исходный текст
Ответы Re: pltcl - lastoid  (Bruce Momjian <pgman@candle.pha.pa.us>)
Список pgsql-hackers
I noticed that pltcl didn't have any way to get to SPI_lastoid like plpgsql does.. I started using pltcl a lot because
Ilike to decide when and how my queries get planned.. so I put one together really quick
 

Sorry I don't have the original around to make a quick diff, but its a very small change... I think this should be in
thenext release, there's no reason not to have it.
 

its a function with no expected arguments, so you can use it like:
spi_exec "INSERT INTO mytable(columns...) VALUES(values..)"
set oid [spi_lastoid]
spi_exec "SELECT mytable_id from mytable WHERE oid=$oid"

It just didn't make sense for me to use plpgsql and pltcl, or just screw them both and use SPI from C

these changes are for src/pl/tcl/pltcl.c

/* start C code */

/* forward declaration */
static int pltcl_SPI_lastoid(ClientData cdata, Tcl_Interp *interp,     int argc, char *argv[]);

/* this needs to go in in pltcl_init_interp with the rest of 'em */       Tcl_CreateCommand(interp, "spi_lastoid",
                                  pltcl_SPI_lastoid, NULL, NULL);
                          
 
/*********************************************************************** pltcl_SPI_lastoid()  - return the last oid.
To*       be used after insert queries**********************************************************************/
 
static int
pltcl_SPI_lastoid(ClientData cdata, Tcl_Interp *interp,     int argc, char *argv[])
{ char buf[64]; sprintf(buf,"%d",SPI_lastoid); Tcl_SetResult(interp, buf, TCL_VOLATILE); return TCL_OK;
}

/* end C code */

-bob


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Philip Warner
Дата:
Сообщение: Re: Bad timestamp external representation
Следующее
От: "Dominic J. Eidson"
Дата:
Сообщение: Re: Failed compile PostgreSQL 7.1.2 on AIX 5.1