实现将下面的native query sql:
select * from activity_{ {'eval timeformatter YYYYMM months 0}} where id={ {'eval metabase-user-id}}
转换为
select * from activity_202103 where id=1
*其中metabase-user-id 为登录用户id
实现方式,在metabase 的query processor 中增加一个middleware,这个middleware 的 #'parameters/substitute-parameters前面。
#'parameters/substitute-parameters
#'querylog/log-query
#'queryeval/queryMapEval
#'querylog/log-query
通过 #'querylog/log-query可以查看sql 修改是否正确。 queryeval/queryMapEval代码如下:
(ns metabase.query-processor.middleware.queryeval
"