When issuing DDL commands from nodes with metadata, we currently error out. Since modern Citus deployments have the coordinator in the metadata, it becomes possible to propagate DDL from any node.
To do so without risk of distributed deadlocks, we need to take the appropriate locks on the real coordinator before doing anything else. One way to achieve that would be to actually run the command on the coordinator (with enable_ddl_propagation=off) before doing anything else.
When issuing DDL commands from nodes with metadata, we currently error out. Since modern Citus deployments have the coordinator in the metadata, it becomes possible to propagate DDL from any node.
To do so without risk of distributed deadlocks, we need to take the appropriate locks on the real coordinator before doing anything else. One way to achieve that would be to actually run the command on the coordinator (with enable_ddl_propagation=off) before doing anything else.