Doesn't PostgreSQL support something like:
RENAME TABLE current TO current_old,
current_new TO current;
Which is the common pattern of atomically swapping out tables in MySQL with zero downtime.Almost all DDL is transactional in PostgreSQL, so the usual equivalent to the above would be:
begin;
alter table current rename to current_old;
alter table current_new rename to current;
commit;
Transaction-safe DDL is a very handy thing indeed.
Oracle allowed you to disable the indexes on a table (something like 'ALTER INDEX foo DISABLE'), which allowed them to become stale when data in the table was modified. You could do this right before a big import operation for example, and you could then rebuild (a different 'ALTER INDEX' syntax) them when the operation completed.
PostgreSQL doesn't appear to have an equivalent at the moment.
edit: wording