Formateador de Snowflake
Formatee SQL con las reglas de Snowflake para cadenas $$, comentarios //, conversiones :: y rutas semiestructuradas como src:customer.name. QUALIFY y MINUS se tratan como cláusulas, SELECT * EXCLUDE, RENAME y REPLACE permanecen en línea, y ASOF JOIN empieza en una nueva línea. Los avisos de cadenas y paréntesis sin cerrar indican la línea y la columna, lo que ayuda a los ingenieros de datos a revisar consultas y scripts del almacén de datos.
Preguntas frecuentes
¿Qué sintaxis de Snowflake reconoce?
Se reconocen las cadenas entre comillas simples con escapes de barra inversa y comillas duplicadas, las cadenas entre comillas de dólar $$, los identificadores entre comillas dobles, las referencias de columna $1 y las conversiones ::. También se conservan los comentarios de línea // que acepta Snowflake, además de -- y /* */.
¿Se conservan intactas las rutas semiestructuradas?
Sí. Las rutas como src:customer.name o v:items[0]::string permanecen unidas, así que los accesos a VARIANT nunca se separan con espacios.
¿Qué cláusulas de Snowflake se admiten?
QUALIFY empieza en una línea propia y MINUS se trata como los demás operadores de conjuntos. ASOF JOIN empieza en una nueva línea, como los demás JOIN.
¿Qué ocurre con SELECT * EXCLUDE?
EXCLUDE, RENAME, REPLACE e ILIKE permanecen en la misma línea que el asterisco al que modifican. Así, SELECT * EXCLUDE (secret) se interpreta como una sola expresión de columna.
¿Qué ocurre con los cuerpos de procedimientos entre $$?
Los cuerpos de procedimientos de JavaScript, Python o Snowflake Scripting escritos entre marcadores $$ se conservan exactamente como están. Para Snowflake son cadenas, por lo que reformatearlos podría cambiar el código.
¿Es compatible con MERGE?
Sí. Las ramas WHEN MATCHED y WHEN NOT MATCHED empiezan en líneas nuevas.
¿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. Los identificadores entre comillas distinguen mayúsculas de minúsculas en Snowflake y nunca se modifican.
¿Qué errores se detectan?
Cadenas sin cerrar, cadenas $$, identificadores entre comillas y comentarios de bloque, además de paréntesis desequilibrados, indicando la línea y la columna de cada caso. No se envía nada al almacén de datos.
¿Qué tamaño puede tener la entrada?
Hasta 1 MB por solicitud y 128 KB por sentencia. Las hojas de trabajo con muchas sentencias se formatean de una en una.
¿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.