citus/src/backend/distributed/executor
Jason Petersen 850c51947a
Re-permit DDL in transactions, selectively
Recent changes to DDL and transaction logic resulted in a "regression"
from the viewpoint of users. Previously, DDL commands were allowed in
multi-command transaction blocks, though they were not processed in any
actual transactional manner. We improved the atomicity of our DDL code,
but added a restriction that DDL commands themselves must not occur in
any BEGIN/END transaction block.

To give users back the original functionality (and improved atomicity)
we now keep track of whether a multi-command transaction has modified
data (DML) or schema (DDL). Interleaving the two modification types in
a single transaction is disallowed.

This first step simply permits a single DDL command in such a block,
admittedly an incomplete solution, but one which will permit us to add
full multi-DDL command support in a subsequent commit.
2016-08-30 20:37:19 -06:00
..
multi_client_executor.c Re-permit DDL in transactions, selectively 2016-08-30 20:37:19 -06:00
multi_executor.c Evaluate functions on the master 2016-07-13 11:45:51 -07:00
multi_real_time_executor.c Rely less on remote_task_check_interval. 2016-06-02 12:11:16 -06:00
multi_router_executor.c Re-permit DDL in transactions, selectively 2016-08-30 20:37:19 -06:00
multi_server_executor.c Rely less on remote_task_check_interval. 2016-06-02 12:11:16 -06:00
multi_task_tracker_executor.c Eliminate compile time warnings in multi_logical_optimizer.c 2016-06-10 12:27:12 +03:00
multi_utility.c Re-permit DDL in transactions, selectively 2016-08-30 20:37:19 -06:00