Форматувальник Redshift
Форматуйте Amazon Redshift SQL за правилами Redshift для рядків з екрануванням зворотною скісною рискою, ідентифікаторів у подвійних лапках, таблиць #temp, приведень типів :: і тіл функцій у $$. QUALIFY і MINUS залишаються клаузами, гілки MERGE починаються з нових рядків, а довгі списки стовпців розміщуються по одному в рядку. Про незакриті рядки й дужки повідомляється із зазначенням рядка та стовпця, що допомагає аналітикам та інженерам даних перевіряти код сховищ даних.
Поширені запитання
Який синтаксис Redshift розпізнається?
Розпізнаються рядки в одинарних лапках з екрануванням зворотною скісною рискою та подвоєними лапками, ідентифікатори в подвійних лапках, імена таблиць #temp і приведення типів ::. Оператори регулярних виразів ~ і ~* з їхніми запереченими формами та тіла функцій у доларових лапках $$ зберігаються без змін.
Чим це відрізняється від форматувальника PostgreSQL?
Redshift походить від PostgreSQL, але має відмінності: у рядках зворотні скісні риски екранують символи, # позначає тимчасову таблицю, а не оператор, також доступні QUALIFY і MINUS. Цей форматувальник дотримується цих правил.
Що відбувається з тілами UDF?
Тіла користувацьких функцій Python або SQL, записані між маркерами $$, зберігаються саме так, як їх написано. Форматується лише оператор навколо них.
Які конструкції розміщуються на окремому рядку?
SELECT, FROM, WHERE, GROUP BY, HAVING, QUALIFY, ORDER BY, LIMIT і OFFSET починаються з окремих рядків. MINUS, UNION, INTERSECT і EXCEPT розділяють запити, які вони об’єднують.
Чи підтримується MERGE?
Так. Гілки WHEN MATCHED і WHEN NOT MATCHED починаються з нових рядків.
Чи зберігаються коментарі?
Так. Коментарі -- і /* */ залишаються на місці. Багаторядкові блокові коментарі отримують відступи відповідно до нового формату.
Чи змінюється регістр ключових слів?
Ні. Ключові слова й імена зберігають регістр, у якому ви їх написали. Змінюються лише пробіли та розриви рядків.
Які помилки виявляються?
Незакриті рядки, ідентифікатори в лапках, тіла $$ і блокові коментарі, а також незбалансовані круглі дужки — для кожного вказуються рядок і стовпець. SQL не надсилається до вашого кластера.
Який максимальний розмір вхідних даних?
До 1 MB на запит і 128 KB на оператор. Довші ETL-скрипти форматуються по одному оператору за раз.
Чи можна вибрати відступи та чи зберігається мій SQL?
Використовуйте 2 або 4 пробіли чи табуляцію. SQL форматується лише в пам’яті й ніколи не зберігається.