On Wed, Feb 7, 2018 at 9:47 PM, Robert Haas <robertmh...@gmail.com> wrote: > On Mon, Jan 22, 2018 at 7:05 AM, Amit Kapila <amit.kapil...@gmail.com> wrote: >> On error, workers should be terminated. What kind of problem do you >> have in mind? > > Hmm. Yeah, I guess that makes sense. If the only thing you can do is > fetch from the cursor -- and you have to make sure to lock down > protocol messages as well as SQL commands -- and if any error kills > the workers -- then I guess this might be workable. However, I think > there are still problems. Say the worker hits an error while the > leader is idle; how do we report the error? >
I guess workers need to wait till leader become active and processes the error message. > It's a protocol version > for the leader to send an unsolicited ErrorResponse, which is why we > have to use FATAL rather than ERROR in various places for recovery > conflicts, query cancellation, etc. > > Also, if you're OK with not being able to do anything except fetch > from the cursor until you reach the end, then couldn't you just issue > the query without the cursor and use PQsetSingleRowMode? > I think there is a lot of cursor usage via plpgsql in which it could be useful. -- With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com