Formateador de Redshift
Formatee Amazon Redshift SQL con las reglas de Redshift para cadenas con escapes de barra inversa, identificadores entre comillas dobles, tablas #temp, conversiones :: y cuerpos de funciones $$. QUALIFY y MINUS se conservan como cláusulas, las ramas MERGE empiezan en líneas nuevas y las listas largas de columnas se distribuyen de una en una por línea. Los avisos de cadenas y paréntesis sin cerrar indican la línea y la columna, lo que ayuda a analistas e ingenieros de datos a revisar código del almacén de datos.
Preguntas frecuentes
¿Qué sintaxis de Redshift reconoce?
Se reconocen las cadenas entre comillas simples con escapes de barra inversa y comillas duplicadas, los identificadores entre comillas dobles, los nombres de tablas #temp y las conversiones ::. Los operadores de expresiones regulares ~ y ~* con sus formas negadas, y los cuerpos de funciones entre comillas de dólar $$, se conservan intactos.
¿En qué se diferencia del formateador de PostgreSQL?
Redshift partió de PostgreSQL, pero tiene diferencias: las barras inversas escapan caracteres en sus cadenas, # inicia el nombre de una tabla temporal en lugar de ser un operador, y admite QUALIFY y MINUS. Este formateador sigue esas reglas.
¿Qué ocurre con los cuerpos de las UDF?
Los cuerpos de las funciones definidas por el usuario en Python o SQL, escritos entre marcadores $$, se conservan exactamente como están. Solo se formatea la sentencia que los rodea.
¿Qué cláusulas van en su propia línea?
SELECT, FROM, WHERE, GROUP BY, HAVING, QUALIFY, ORDER BY, LIMIT y OFFSET empiezan en líneas propias. MINUS, UNION, INTERSECT y EXCEPT separan las consultas que combinan.
¿Es compatible con MERGE?
Sí. Las ramas WHEN MATCHED y WHEN NOT MATCHED empiezan en líneas nuevas.
¿Se conservan los comentarios?
Sí. Los comentarios -- y /* */ permanecen en su sitio. Los comentarios de bloque multilínea se vuelven a sangrar para adaptarlos al nuevo formato.
¿Cambia el uso de mayúsculas y minúsculas en las palabras clave?
No. Las palabras clave y los nombres conservan las mayúsculas y minúsculas originales. Solo cambian los espacios en blanco y los saltos de línea.
¿Qué errores se detectan?
Cadenas sin cerrar, identificadores entre comillas, cuerpos $$ y comentarios de bloque, además de paréntesis desequilibrados, indicando la línea y la columna de cada caso. SQL no se envía al clúster.
¿Qué tamaño puede tener la entrada?
Hasta 1 MB por solicitud y 128 KB por sentencia. Los scripts ETL más largos se formatean de una sentencia a la vez.
¿Puedo elegir la sangría y se guarda mi SQL?
Use 2 o 4 espacios, o tabuladores. SQL solo se formatea en memoria y nunca se guarda.