0A000 feature not supported 는?

PostgreSQL 에러 코드 0A000은 현재 사용하려는 기능이 PostgreSQL에서 지원되지 않거나, 특정 컨텍스트에서는 사용할 수 없음을 의미합니다. 주로 트랜잭션 내부에서 허용되지 않는 명령을 실행하거나, 해당 버전의 PostgreSQL에서 아직 구현되지 않은 SQL 표준 문법을 사용할 때, 또는 복제(Replication) 환경의 제약으로 인해 발생합니다. 실무에서는 특히 CREATE DATABASE, VACUUM, CLUSTER 같은 명령을 트랜잭션 블록 안에서 실행하거나, Logical Replication 슬롯과 관련된 작업을 수행할 때 자주 마주치는 에러입니다.

주요 발생 원인

1. 트랜잭션 블록 내에서 허용되지 않는 DDL 명령 실행

PostgreSQL은 일부 DDL 명령을 트랜잭션 블록(BEGIN ... COMMIT) 내에서 실행하는 것을 허용하지 않습니다. CREATE DATABASE, DROP DATABASE, CREATE TABLESPACE, DROP TABLESPACE, VACUUM, CLUSTER 등의 명령은 트랜잭션 컨텍스트 밖에서 단독으로 실행되어야 하며, 이를 무시하고 트랜잭션 내부에서 호출하면 0A000 에러가 발생합니다.