# Форматтер PostgreSQL

Форматируйте запросы и скрипты PostgreSQL с учётом правил Postgres для тел функций в долларовых кавычках, строк с экранированием E'', идентификаторов в двойных кавычках, приведений :: и операторов JSON, таких как ->> и @>. Такие секции, как 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 начинаются с новой строки, поэтому инструкции MERGE из версии PostgreSQL 15 и новее остаются читаемыми.

### Меняется ли регистр ключевых слов?

Нет. Регистр ключевых слов и идентификаторов сохраняется таким, каким вы его задали. Идентификаторы в кавычках в PostgreSQL чувствительны к регистру и не изменяются.

### Какие ошибки обнаруживаются?

О незакрытых строках, идентификаторах в кавычках, строках в долларовых кавычках и блочных комментариях, а также о несбалансированных скобках сообщается с указанием строки и столбца. Инструмент не проверяет полную грамматику PostgreSQL или вашу схему.

### Каков максимальный размер входных данных?

До 1 MB на запрос и 128 KB на инструкцию. Файлы миграций со множеством инструкций форматируются по одной, с пустой строкой между ними.

### Можно ли выбрать отступ?

Да. Выберите отступ в 2 или 4 пробела либо табуляцию. Ваш SQL обрабатывается только в памяти и нигде не сохраняется.

Ваша реклама здесь?

[Напишите нам по электронной почте](mailto:hi@dennn.is?subject=%D0%A0%D0%B5%D0%BA%D0%BB%D0%B0%D0%BC%D0%B0%20%D0%BD%D0%B0%20OneClick%20Pro)

[Реклама Набор плагинов для работы агентов с WordPress.](https://sleekwp.com/?ref=oneclickpro)
