IntelliJ SQL Formatter с CHECK + CASE - PullRequest
0 голосов
/ 29 апреля 2019

Я пытаюсь получить средство форматирования SQL IntelliJ (Ultimate 2019.1) для форматирования проверочных ограничений с помощью оператора CASE, например:

(синтаксис postgres)

ALTER TABLE "foo"
  ADD CONSTRAINT "bar" CHECK ( 
    CASE
    WHEN ("col_a" = 'VAL_A1') THEN ("col_b" IN ('A', 'B', 'C'))
    WHEN ("col_a" = 'VAL_A2') THEN ("col_b" IN ('D', 'E', 'F'))
    ELSE FALSE
    END
  );

или

ALTER TABLE "foo"
  ADD CONSTRAINT "bar" CHECK ( CASE
    WHEN ("col_a" = 'VAL_A1') THEN ("col_b" IN ('A', 'B', 'C'))
    WHEN ("col_a" = 'VAL_A2') THEN ("col_b" IN ('D', 'E', 'F'))
    ELSE FALSE
  END);

Лучшее, что я получил на данный момент, это:

ALTER TABLE "foo"
  ADD CONSTRAINT "bar" CHECK ( CASE
                               WHEN ("col_a" = 'VAL_A1') THEN ("col_b" IN ('A', 'B', 'C'))
                               WHEN ("col_a" = 'VAL_A2') THEN ("col_b" IN ('D', 'E', 'F'))
                               ELSE FALSE
                               END);

Я прошел через несколько вариантов, но не могу найти тот, который говорит форматировщику не выравнивать WHEN по ключевому слову CASE (или поставить CASE в новой строке).

Один вариант, который я нашел, это вообще не оборачивать чек. Однако, это становится нечитаемым быстро с большими CASE утверждениями

Что я могу с этим поделать?

Заранее спасибо!

...