Re: [HACKERS] Faster methods for getting SPI results
От | Jim Nasby |
---|---|
Тема | Re: [HACKERS] Faster methods for getting SPI results |
Дата | |
Msg-id | 93e424b7-7889-d5ce-38cc-e93cae29e301@BlueTreble.com обсуждение исходный текст |
Ответ на | Re: [HACKERS] Faster methods for getting SPI results (Craig Ringer <craig@2ndquadrant.com>) |
Список | pgsql-hackers |
On 12/27/16 9:10 PM, Craig Ringer wrote: > On 28 December 2016 at 09:58, Jim Nasby <Jim.Nasby@bluetreble.com> wrote: > >> I've looked at this some more, and ITSM that the only way to do this without >> some major surgery is to create a new type of Destination specifically for >> SPI that allows for the execution of an arbitrary C function for each tuple >> to be sent. > > That sounds a lot more sensible than the prior proposals. Callback driven. Here's what I've got right now. I haven't bothered with SPI_execute_callback() yet, and there's some missing sanity checks. I'm not sure if the changes to CreateDestReceiver() are warranted or necessary, though it would at least give you sane defaults. My incomplete code that would make use of this currently does CallbackState callback; memcpy(callback.pub, CreateDestReceiver(DestSPICallback), sizeof(DestReceiver));callback.pub.receiveSlot = PLy_CSreceive;callback.pub.rStartup = PLy_CSStartup; -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com 855-TREBLE2 (855-873-2532)
В списке pgsql-hackers по дате отправления: