Форматировщик Trino
Форматируйте Trino и Presto SQL по правилам Trino для идентификаторов в двойных кавычках, обычных строк без экранирования обратной косой чертой, литералов X'' и U&'', индексов массивов и отображений, а также лямбда-выражений. Такие конструкции, как WITH, GROUP BY, ORDER BY, OFFSET и FETCH FIRST, размещаются на отдельных строках, а столбцы с отступом — по одному на строку. Для аналитиков незакрытые строки и скобки отмечаются с указанием строки и столбца.
Часто задаваемые вопросы
Какой синтаксис Trino распознаётся?
Распознаются строки в одинарных кавычках с удвоенными кавычками, идентификаторы в двойных кавычках, а также литералы X'' varbinary и U&'' Unicode. Индексы Array[1] и map['key'], а также лямбда-выражения, например x -> x + 1, сохраняются без изменений.
Экранируют ли обратные косые черты символы в строках?
Нет. В Trino обратная косая черта внутри строки считается обычным символом, и форматировщик следует этому правилу, поэтому 'C:\' — это завершённая строка.
Можно ли форматировать запросы Presto и Amazon Athena?
Да. Presto и Athena используют правила кавычек Trino и большую часть его синтаксиса, поэтому их запросы форматируются одинаково.
Как обрабатываются имена каталогов и схем?
Составные имена, такие как hive.sales.orders и "my-catalog"."schema"."table", остаются цельными. Пробелы вокруг точек не добавляются.
Какие конструкции размещаются на отдельных строках?
WITH, SELECT, FROM, WHERE, GROUP BY, HAVING, WINDOW, ORDER BY, OFFSET, LIMIT и FETCH начинаются с новой строки. Операторы множеств UNION, INTERSECT и EXCEPT разделяют объединяемые запросы.
Поддерживается ли MERGE?
Да. Ветви WHEN MATCHED и WHEN NOT MATCHED начинаются с новых строк.
Меняется ли регистр ключевых слов?
Нет. Ключевые слова и имена сохраняют регистр, в котором вы их написали. Меняются только пробелы и переносы строк.
Какие ошибки обнаруживаются?
Незакрытые строки, идентификаторы в кавычках, индексы и блочные комментарии, а также несбалансированные скобки — для каждого случая указываются строка и столбец. Запросы не выполняются в кластере.
Каков максимальный размер входных данных?
До 1 MB на запрос и 128 KB на инструкцию. Несколько инструкций разделяются пустыми строками.
Можно ли выбрать отступы и сохраняется ли мой SQL?
Используйте 2 или 4 пробела либо табуляцию. SQL форматируется только в памяти и никогда не сохраняется.