diff options
author | Mason Sharp | 2010-11-14 19:52:45 +0000 |
---|---|---|
committer | Pavan Deolasee | 2011-05-19 16:45:22 +0000 |
commit | b08d7c0f3481745289b34691bf27b24940ac7e1b (patch) | |
tree | c131420fa8fac219b37f1703373ddafa880350a3 /src/backend/tcop/postgres.c | |
parent | 620d0e377c41c8acc29ab83069db5d3180087963 (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