Formattatore PostgreSQL
Formattate query e script PostgreSQL secondo le regole di Postgres per i corpi di funzione tra virgolette con il simbolo del dollaro, le stringhe di escape E'', gli identificatori tra virgolette doppie, i cast :: e gli operatori JSON come ->> e @>. Clausole come RETURNING, ON CONFLICT e DO UPDATE SET iniziano su righe separate; stringhe, commenti o parentesi non chiusi vengono segnalati con riga e colonna. Pensato per gli sviluppatori che leggono migrazioni e query.
Domande frequenti
Quale sintassi PostgreSQL viene riconosciuta?
Vengono riconosciute le stringhe standard con apici raddoppiati, le stringhe E'' con escape tramite barre rovesciate, le stringhe Unicode U&'', le stringhe binarie B'' e X'', gli identificatori tra virgolette doppie e i parametri $1. Vengono lette anche le stringhe tra virgolette con il simbolo del dollaro, come $$...$$ o $body$...$body$.
Che cosa succede ai corpi delle funzioni tra virgolette con il simbolo del dollaro?
Un corpo tra virgolette con il simbolo del dollaro viene mantenuto esattamente com'è, perché per PostgreSQL è una stringa. L'istruzione CREATE FUNCTION che lo contiene viene formattata, ma il corpo resta invariato.
I cast e gli operatori vengono mantenuti intatti?
Sì. I cast come value::integer restano uniti e gli operatori come ->, ->>, #>, #>>, @>, <@, ?|, ?&, @@ e gli operatori di espressione regolare ~ e ~*, con le rispettive forme negate, non vengono mai separati. In PostgreSQL # è un operatore, non un commento.
Quali clausole di PostgreSQL vanno su una riga dedicata?
RETURNING, ON CONFLICT, DO UPDATE SET, FOR UPDATE, FOR NO KEY UPDATE, FOR SHARE e FOR KEY SHARE restano unite come clausole. Anche le consuete clausole SELECT, FROM, WHERE, GROUP BY, ORDER BY, LIMIT e OFFSET iniziano su righe dedicate.
I commenti vengono mantenuti?
Sì. I commenti su riga singola e quelli su blocco restano al loro posto; i commenti annidati su blocco, consentiti da PostgreSQL, vengono interpretati correttamente. I commenti su blocco multilinea vengono reindentati nella nuova posizione.
Supporta MERGE?
Sì. I rami WHEN MATCHED e WHEN NOT MATCHED iniziano su righe nuove, così le istruzioni MERGE di PostgreSQL 15 e versioni successive restano leggibili.
Modifica le maiuscole delle parole chiave?
No. Le parole chiave e gli identificatori mantengono le maiuscole e minuscole originali. In PostgreSQL gli identificatori tra virgolette distinguono tra maiuscole e minuscole e non vengono mai modificati.
Quali errori vengono rilevati?
Le stringhe non chiuse, gli identificatori tra virgolette, le stringhe tra dollari e i commenti su blocco non chiusi, oltre alle parentesi non bilanciate, vengono segnalati con riga e colonna. Lo strumento non verifica la grammatica completa di PostgreSQL né lo schema.
Qual è la dimensione massima dell'input?
Fino a 1 MB per richiesta e 128 KB per istruzione. I file di migrazione con molte istruzioni vengono formattati un'istruzione alla volta e separati da righe vuote.
Posso scegliere l'indentazione?
Sì. Usate 2 o 4 spazi oppure le tabulazioni. Il vostro SQL viene elaborato solo in memoria e non viene mai salvato.