Параметризация формата строк hsql/raw

#clojure #metabase #honeysql

Вопрос:

Я использую продукт под названием Metabase и работаю над созданием пользовательского драйвера. Есть метод, который я переопределяю, который строит логику получения последних X недель. Ниже приведен пример того, чего я пытаюсь достичь

 (defmethod sql.qp/date 
  [:db2 :week] 
  [_ _ expr] 
  (hx/- expr 
    (hsql/raw 
      (hsql/format "days" (hsql/call :dayofweek expr)))))
 

expr здесь приравнивается к этому: (CAST(current timestamp AS timestamp) -14 days)

Когда мой приведенный выше код запускается, я получаю этот вывод:

((CAST(current timestamp AS timestamp) -14 days) - ? days)

Мой желаемый результат здесь таков:

 ((CAST(current timestamp AS timestamp)   -14 days) - dayofweek((CAST(current timestamp AS timestamp)   -14 days)) days)
 

Я очень новичок в clojure и с трудом справляюсь с этим. Любые советы или помощь будут высоко оценены!

Спасибо!

Комментарии:

1. Не знаю о метабазе, но вот вам хороший список источников документации Clojure: github.com/io-tupelo/clj-template#documentation