summaryrefslogtreecommitdiff
path: root/src/backend/tcop/postgres.c
diff options
context:
space:
mode:
authorMason Sharp2010-11-14 19:52:45 +0000
committerPavan Deolasee2011-05-19 16:45:22 +0000
commitb08d7c0f3481745289b34691bf27b24940ac7e1b (patch)
treec131420fa8fac219b37f1703373ddafa880350a3 /src/backend/tcop/postgres.c
parent620d0e377c41c8acc29ab83069db5d3180087963 (diff)
1. Support for UPDATE and DELETE WHERE CURRENT OF for
replicated tables through a cursor. Cursor on replicated table should be declared with FOR UPDATE to be updateable. CTID is appended to the field list in this case. Plan for replicated WHERE CURRENT OF consists of multiple steps: - Select all values of current row by CTID (on single node) - Declare cursor for select from the table with WHERE clause looking like col1 = value1 AND col2 = value2 AND ..., all columns of the table are listed (on all nodes) - Move the cursor to the first position (on all nodes) - Update the cursor (on all nodes) 2. Support for Extended Query Protol (EQP) in coordinator-data node communication. Allows handling data node cursors effectively. Planner tells executor to use EQP by setting cursor field of RemoteQuery. 3. Enabled data node connection sharing between multiple concurrent RemoteQueries. Needed to better support concurrent user defined cursors and multi-step query plans. If another RemoteQuery needs to use data node connection, pending input intended for previous connection is buffered, and when previous RemoteQuery is active again it will consume buffered input first. It is recommended to use EQP for multi-step plans and user-defined cursors to minimize amount of buffered data if executor is switching between RemoteQueries. By Andrei Martsinchyk
Diffstat (limited to 'src/backend/tcop/postgres.c')
0 files changed, 0 insertions, 0 deletions