Formater PostgreSQL
Formatuj zapytania i skrypty PostgreSQL zgodnie z regułami Postgresa dotyczącymi treści funkcji ujętych w cudzysłowy dolarowe, ciągów E'' ze znakami ucieczki, identyfikatorów w podwójnych cudzysłowach, rzutowań :: oraz operatorów JSON, takich jak ->> i @>. Klauzule, takie jak RETURNING, ON CONFLICT i DO UPDATE SET, trafiają do osobnych wierszy, a niezamknięte ciągi, komentarze i nawiasy są zgłaszane wraz z numerem wiersza i kolumny. Stworzone z myślą o programistach czytających migracje i zapytania.
Najczęściej zadawane pytania
Jaką składnię PostgreSQL rozpoznaje?
Rozpoznawane są standardowe ciągi z podwojonymi cudzysłowami, ciągi E'' ze znakami ucieczki, ciągi U&'' Unicode, ciągi bitowe B'' i X'', identyfikatory w podwójnych cudzysłowach oraz parametry $1. Obsługiwane są także ciągi ujęte w cudzysłowy dolarowe, takie jak $$...$$ lub $body$...$body$.
Co dzieje się z treścią funkcji ujętą w cudzysłowy dolarowe?
Treść ujęta w cudzysłowy dolarowe pozostaje dokładnie taka, jak została zapisana, ponieważ dla PostgreSQL jest ciągiem znaków. Otaczająca ją instrukcja CREATE FUNCTION jest formatowana, ale sama treść nie jest zmieniana.
Czy rzutowania i operatory pozostają nienaruszone?
Tak. Rzutowania, takie jak value::integer, pozostają połączone, a operatory takie jak ->, ->>, #>, #>>, @>, <@, ?|, ?&, @@ oraz operatory wyrażeń regularnych ~ i ~* wraz z ich zanegowanymi formami nigdy nie są rozdzielane. W PostgreSQL # jest operatorem, a nie komentarzem.
Które klauzule PostgreSQL trafiają do osobnych wierszy?
RETURNING, ON CONFLICT, DO UPDATE SET, FOR UPDATE, FOR NO KEY UPDATE, FOR SHARE i FOR KEY SHARE pozostają razem jako klauzule. Zwykłe klauzule SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT i OFFSET również zaczynają się w osobnych wierszach.
Czy komentarze są zachowywane?
Tak. Komentarze wierszowe i blokowe pozostają na miejscu, a zagnieżdżone komentarze blokowe, które dopuszcza PostgreSQL, są prawidłowo odczytywane. Wielowierszowe komentarze blokowe są ponownie wcięte zgodnie z nowym położeniem.
Czy obsługuje MERGE?
Tak. Gałęzie WHEN MATCHED i WHEN NOT MATCHED zaczynają się w nowych wierszach, dzięki czemu instrukcje MERGE z wersji PostgreSQL 15 i nowszych pozostają czytelne.
Czy zmienia wielkość liter w słowach kluczowych?
Nie. Słowa kluczowe i identyfikatory zachowują wielkość liter z wpisanego tekstu. W PostgreSQL identyfikatory ujęte w cudzysłowy rozróżniają wielkość liter i nigdy nie są zmieniane.
Jakie błędy są wykrywane?
Niezamknięte ciągi znaków, identyfikatory w cudzysłowach, ciągi ujęte w znaki dolara i komentarze blokowe oraz niezbilansowane nawiasy są zgłaszane wraz z numerem wiersza i kolumny. Narzędzie nie sprawdza pełnej gramatyki PostgreSQL ani schematu.
Jak duże mogą być dane wejściowe?
Do 1 MB na żądanie i 128 KB na instrukcję. Pliki migracji zawierające wiele instrukcji są formatowane po jednej instrukcji naraz i rozdzielane pustymi wierszami.
Czy mogę wybrać wcięcie?
Tak. Użyj 2 lub 4 spacji albo tabulatorów. Twoje SQL jest przetwarzane wyłącznie w pamięci i nigdy nie jest zapisywane.