Change the order of placement access added to the list

This is to make sure that the error messages related to foreign keys
to reference tables shows the exact placement access name instead of
SELECT.
pull/2790/head
Onder Kalaci 2019-06-23 11:32:58 +02:00
parent eb98f2d13a
commit ad93d6feea
3 changed files with 3 additions and 3 deletions

View File

@ -1250,7 +1250,7 @@ GetModifyConnections(Task *task, bool markCritical)
/* create placement access for the placement that we're modifying */
placementModification = CreatePlacementAccess(taskPlacement, accessType);
placementAccessList = lappend(placementAccessList, placementModification);
placementAccessList = lcons(placementModification, placementAccessList);
/* get an appropriate connection for the DML statement */
multiConnection = GetPlacementListConnection(connectionFlags, placementAccessList,

View File

@ -538,7 +538,7 @@ ROLLBACK;
BEGIN;
ALTER TABLE on_update_fkey_table ADD COLUMN X int;
UPDATE referece_table SET id = 160 WHERE id = 15;
ERROR: cannot execute SELECT on reference relation "referece_table" because there was a parallel DDL access to distributed relation "on_update_fkey_table" in the same transaction
ERROR: cannot execute DML on reference relation "referece_table" because there was a parallel DDL access to distributed relation "on_update_fkey_table" in the same transaction
HINT: Try re-running the transaction with "SET LOCAL citus.multi_shard_modify_mode TO 'sequential';"
ROLLBACK;
-- case 6:5: Unrelated parallel DDL on distributed table followed by unrelated DDL on ref. table

View File

@ -538,7 +538,7 @@ ROLLBACK;
BEGIN;
ALTER TABLE on_update_fkey_table ADD COLUMN X int;
UPDATE referece_table SET id = 160 WHERE id = 15;
ERROR: cannot execute SELECT on reference relation "referece_table" because there was a parallel DDL access to distributed relation "on_update_fkey_table" in the same transaction
ERROR: cannot execute DML on reference relation "referece_table" because there was a parallel DDL access to distributed relation "on_update_fkey_table" in the same transaction
HINT: Try re-running the transaction with "SET LOCAL citus.multi_shard_modify_mode TO 'sequential';"
ROLLBACK;
-- case 6:5: Unrelated parallel DDL on distributed table followed by unrelated DDL on ref. table