On Mon, Jan 12, 2015 at 3:25 AM, Robert Haas <robertmh...@gmail.com> wrote: > > On Sat, Jan 10, 2015 at 11:14 PM, Amit Kapila <amit.kapil...@gmail.com> wrote: > >> I don't think you should be "switching" queues. The tuples should be > >> sent to the tuple queue, and errors and notices to the error queue. > > To achieve what you said (The tuples should be sent to the tuple > > queue, and errors and notices to the error queue.), we need to > > switch the queues. > > The difficulty here is that once we set the queue (using > > pq_redirect_to_shm_mq()) through which the communication has to > > happen, it will use the same unless we change again the queue > > using pq_redirect_to_shm_mq(). For example, assume we have > > initially set error queue (using pq_redirect_to_shm_mq()) then to > > send tuples, we need to call pq_redirect_to_shm_mq() to > > set the tuple queue as the queue that needs to be used for communication > > and again if error happens then we need to do the same for error > > queue. > > Do you have any other idea to achieve the same? > > Yeah, you need two separate global variables pointing to shm_mq > objects, one of which gets used by pqmq.c for errors and the other of > which gets used by printtup.c for tuples. >
Okay, I will try to change the way as suggested without doing switching, but this way we need to do it separately for 'T', 'D', and 'C' messages. I have moved this patch to next CF as apart from above still I have to work on execution strategy and optimizer related changes as discussed in this thread With Regards, Amit Kapila. EnterpriseDB: http://www.enterprisedb.com