Query processing

Utility statement

Also called: utility command, ProcessUtility, DDL command

A utility statement is any command that is not a planned query, CREATE TABLE, ALTER, VACUUM, SET, GRANT. Instead of going through the optimizer and executor, these run directly through a dispatcher called ProcessUtility.

What this means

Anything that isn't a planned query, CREATE TABLE, ALTER, VACUUM, SET, GRANT. These skip the optimizer and executor completely and run through a separate dispatcher, because there's no "cheapest way" to work out; the command just does its one defined job.

Why it matters operationally

It is why EXPLAIN CREATE TABLE is meaningless, there is no plan to show. The performance of DDL is a question of locking and execution, not of optimization, which changes how you reason about it entirely.

Related & next

The Parse, Plan, Execute Pipeline, the utility side doorPlan tree, what utility statements skipLock, what DDL performance usually hinges on

← All glossary terms · GUC reference · Error catalog