How to properly use the Executor interface?
От | Kai Kratz |
---|---|
Тема | How to properly use the Executor interface? |
Дата | |
Msg-id | FRAPR01MB08526F1FFAC32C954AE8288AF6CD0@FRAPR01MB0852.DEUPRD01.PROD.OUTLOOK.DE обсуждение исходный текст |
Ответы |
Re: How to properly use the Executor interface?
|
Список | pgsql-hackers |
Hi Hackers, first time writing to the hackers list, so I hope this is the right place to ask. I recently joined Swarm64 and we are buildinga postgres extension with the fdw interface. I am trying to evaluate sql statements with ExecutorBeing, -Run, -End, -Finish calls during ExecForeignInsert. I set up aQueryDesc and call ExecutorStart during BeginForeignModify and store the QueryDesc in the fdwState to call ExecutorRun/ Rewind on each ExecForeignInsert. On EndForeignModify ExecutorFinish and ExecutorEnd are called. The statementis used to generate an additional column generated from the value of one ore more present columns, e.g. hashinga string. I am now not really sure if I am abusing the interface and if this is save to be used in such a way. I noticed there arehooks for Start, Run, End and Finish and I am unsure what requirements this places on my usage. Initially I tried to keep the started Executor around beyond the lifetime of a query and only clean up when the worker processshuts down. This did not end well (as in SIGSEGV) as soon as I loaded auto_explain which tried to report on the 'slowquery' outside of a portal. Give the comments in execMain.c I am also wondering what cleanup I need to do in case the insert fails after ExecutorStart. Cheers -- Kai Kratz Swarm64: https://swarm64.com/
В списке pgsql-hackers по дате отправления: