Форматировщик Snowflake
Форматируйте SQL по правилам Snowflake для строк $$, комментариев //, приведений типов :: и полуструктурированных путей, например src:customer.name. QUALIFY и MINUS обрабатываются как предложения, SELECT * EXCLUDE, RENAME и REPLACE остаются в одной строке, а ASOF JOIN начинается с новой строки. О незакрытых строках и скобках сообщается с указанием строки и столбца, что помогает инженерам по данным проверять запросы и скрипты для хранилища данных.
Часто задаваемые вопросы
Какой синтаксис Snowflake распознается?
Распознаются строки в одинарных кавычках с экранированием обратной косой чертой и удвоенными кавычками, строки в долларовых кавычках $$, идентификаторы в двойных кавычках, ссылки на столбцы $1 и приведения типов ::. Также сохраняются комментарии //, которые Snowflake поддерживает наряду с -- и /* */.
Полуструктурированные пути сохраняются целиком?
Да. Пути, например src:customer.name или v:items[0]::string, остаются цельными, поэтому доступ к VARIANT никогда не разделяется пробелами.
Какие предложения Snowflake поддерживаются?
QUALIFY начинается с новой строки, а MINUS обрабатывается как другие операторы множеств. ASOF JOIN начинается с новой строки, как и другие JOIN.
Как форматируется SELECT * EXCLUDE?
EXCLUDE, RENAME, REPLACE и ILIKE остаются в одной строке со звездочкой, к которой они относятся. Поэтому SELECT * EXCLUDE (secret) читается как одно выражение столбца.
Как форматируются тела процедур в $$?
Тела процедур JavaScript, Python или Snowflake Scripting, записанные между маркерами $$, сохраняются в точности как написаны. Для Snowflake это строки, поэтому их переформатирование может изменить код.
Поддерживается ли MERGE?
Да. Ветви WHEN MATCHED и WHEN NOT MATCHED начинаются с новых строк.
Меняется ли регистр ключевых слов?
Нет. Ключевые слова и имена сохраняют регистр, в котором вы их написали. В Snowflake идентификаторы в кавычках чувствительны к регистру, и они никогда не изменяются.
Какие ошибки обнаруживаются?
Незакрытые строки, строки $$, идентификаторы в кавычках, блочные комментарии и несбалансированные скобки — для каждого случая указаны строка и столбец. Ничего не отправляется в ваше хранилище данных.
Каков максимальный размер входных данных?
До 1 МБ на запрос и 128 КБ на инструкцию. Листы с большим количеством инструкций форматируются по одной инструкции за раз.
Можно ли выбрать отступы и сохраняется ли мой SQL?
Используйте 2 или 4 пробела либо табуляцию. SQL форматируется только в памяти и никогда не сохраняется.