PostgreSQL 포맷터
달러 따옴표 함수 본문, E'' 이스케이프 문자열, 큰따옴표 식별자, :: 형 변환, ->> 및 @>와 같은 JSON 연산자에 대한 Postgres 규칙으로 PostgreSQL 쿼리와 스크립트를 포맷합니다. RETURNING, ON CONFLICT, DO UPDATE SET 같은 절은 각각 별도 줄에 배치되며, 닫히지 않은 문자열, 주석, 괄호는 줄과 열 위치와 함께 표시됩니다. 마이그레이션과 쿼리를 읽는 개발자를 위한 도구입니다.
자주 묻는 질문
어떤 PostgreSQL 구문을 이해하나요?
따옴표를 두 번 쓴 표준 문자열, 백슬래시 이스케이프가 있는 E'' 문자열, U&'' Unicode 문자열, B'' 및 X'' 비트 문자열, 큰따옴표 식별자, $1 매개변수를 인식합니다. $$...$$ 또는 $body$...$body$와 같은 달러 따옴표 문자열도 읽습니다.
달러 따옴표 안의 함수 본문은 어떻게 처리되나요?
달러 따옴표로 감싼 본문은 PostgreSQL에 문자열이므로 작성된 그대로 유지됩니다. 바깥의 CREATE FUNCTION 문은 포맷하지만 본문 자체는 변경하지 않습니다.
형 변환과 연산자는 그대로 유지되나요?
예. value::integer 같은 캐스트는 붙어 있는 상태로 유지되며, ->, ->>, #>, #>>, @>, <@, ?|, ?&, @@ 및 ~, ~* 정규식 연산자와 그 부정형은 절대 분리되지 않습니다. PostgreSQL에서 #은 주석이 아니라 연산자입니다.
어떤 PostgreSQL 절이 각각 별도 줄에 표시되나요?
RETURNING, ON CONFLICT, DO UPDATE SET, FOR UPDATE, FOR NO KEY UPDATE, FOR SHARE 및 FOR KEY SHARE는 하나의 절로 묶어 둡니다. 일반적인 SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT 및 OFFSET 절도 각각 별도 줄에서 시작합니다.
주석이 보존되나요?
예. 줄 주석과 블록 주석은 원래 위치에 유지되며, PostgreSQL에서 허용하는 중첩 블록 주석도 올바르게 읽습니다. 여러 줄로 된 블록 주석은 새 위치에 맞춰 들여쓰기를 다시 적용합니다.
MERGE를 지원하나요?
예. WHEN MATCHED 및 WHEN NOT MATCHED 분기는 새 줄에서 시작하므로 PostgreSQL 15 이상에서 작성한 MERGE 문도 읽기 쉽습니다.
키워드의 대소문자를 변경하나요?
아니요. 키워드와 식별자는 입력한 대소문자를 유지합니다. PostgreSQL에서 따옴표로 묶인 식별자는 대소문자를 구분하며 절대 변경되지 않습니다.
어떤 오류를 감지하나요?
닫히지 않은 문자열, 따옴표로 묶인 식별자, 달러 따옴표 문자열 및 블록 주석과 괄호 짝이 맞지 않는 부분을 줄과 열 번호와 함께 표시합니다. 이 도구는 전체 PostgreSQL 문법이나 스키마를 검사하지 않습니다.
입력 크기는 최대 얼마인가요?
요청당 최대 1 MB, 문당 128 KB까지 지원합니다. 문이 많은 마이그레이션 파일은 문별로 하나씩 서식을 지정하고 빈 줄로 구분합니다.
들여쓰기를 선택할 수 있나요?
예. 공백 2칸 또는 4칸이나 탭을 사용하세요. SQL는 메모리에서만 처리되며 저장되지 않습니다.