citus/src/backend/distributed/executor
Onder Kalaci bdaeb40b51 Add missing relation access record for local utility command
While testing 5670dffd33, I realized
that we have a missing RecordNonDistTableAccessesForTask() for
local utility commands.

Although we don't have to record the relation access for local
only cases, we really want to keep the behaviour for scale-out
be the same with single node on all aspects. We wouldn't want
any single node complex transaction to work on single machine,
but not on multi node cluster. Hence, we apply the same restrictions.

For example, on a distributed cluster, the following errors, and
after this commit this errors locally as well

```SQL
CREATE TABLE ref(a int primary key);
INSERT INTO ref VALUES (1);

CREATE TABLE dist(a int REFERENCES ref(a));
SELECT create_reference_table('ref');
SELECT create_distributed_table('dist', 'a');

BEGIN;
		SELECT * FROM dist;
		TRUNCATE ref CASCADE;

ERROR:  cannot execute DDL on table "ref" because there was a parallel SELECT access to distributed table "dist" in the same transaction
HINT:  Try re-running the transaction with "SET LOCAL citus.multi_shard_modify_mode TO 'sequential';"

COMMIT;
```

We also add the comprehensive test suite and run the same locally.
2022-07-29 11:36:33 +02:00
..
adaptive_executor.c Drop postgres 12 support (#6040) 2022-07-20 17:49:36 +03:00
citus_custom_scan.c Allow WITH HOLD cursors with parameters 2022-07-21 12:00:59 +02:00
directed_acyclic_graph_execution.c Use intermediate results for re-partition joins 2022-02-23 19:40:21 +01:00
distributed_execution_locks.c Fix typo s/exlusive/exclusive/ 2021-12-23 01:35:01 +03:00
distributed_intermediate_results.c Shard Split for Citus (#6029) 2022-07-18 02:54:15 -07:00
insert_select_executor.c Fix issues with insert..select casts and column ordering 2022-07-28 13:23:57 +02:00
intermediate_results.c Fix materialized view intermediate result filename (#5982) 2022-06-14 15:07:08 +03:00
local_executor.c Add missing relation access record for local utility command 2022-07-29 11:36:33 +02:00
multi_client_executor.c Remove unused functions that cppcheck found 2020-10-19 13:50:52 +03:00
multi_executor.c Remove useless version compats 2022-07-29 10:31:55 +02:00
multi_server_executor.c Local execution considers intermediate result size limit 2020-10-15 17:18:55 +02:00
partitioned_intermediate_results.c Remove useless version compats 2022-07-29 10:31:55 +02:00
placement_access.c Not include to-be-deleted shards while finding shard placements 2021-06-28 13:05:31 +03:00
query_stats.c Remove useless version compats 2022-07-29 10:31:55 +02:00
repartition_join_execution.c Enable re-partition joins after local execution 2022-02-23 19:40:21 +01:00
subplan_execution.c Fix explain subplan duration 2020-07-03 20:39:55 +03:00
transmit.c Remove old re-partitioning functions 2022-04-04 18:11:52 +02:00
tuple_destination.c Fixes function names in comments 2021-10-06 09:24:43 +03:00