pltcl - lastoid
От | bob@redivi.com |
---|---|
Тема | pltcl - lastoid |
Дата | |
Msg-id | 20010726223122.A300@redivi.com обсуждение исходный текст |
Ответы |
Re: pltcl - lastoid
|
Список | 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 по дате отправления: