It’s quite common for me to issue some DDL statement in my query together with an INSERT, UPDATE or any statement that modified the state of the db and then rolling it back. Mostly for testing purpose of a new change or addition to the schema. It was something that I take for granted ever since I know PostgreSQL. Few days ago, someone mentioned about Transactional DDL which is actually unique to Postgres only. And today, a discussion followed up which explain in detail what is mean by Transactional DDL and a brief comparison with MySQL which doesn’t have it. I just can’t imagine if Postgres doesn’t have this.