Форматер 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 обробляється лише в пам’яті й ніколи не зберігається.