Я не могу заставить HoneySQL испускать SQL, который позволяет мне использовать составной ключ в предложении WHERE.
Что я пытаюсь получить: SQL:
SELECT field_id, layer, event_date, is_deleted
FROM event
WHERE
field_id in ('1325629', '1627236', '1673576') AND
layer in ('fha.raw') AND
(field_id,layer,event_date) > ('1627236','fha.raw', '2018-07-23 09:45:07.6-07')
ORDER BY field_id, layer, event_date;
HoneySQL:
(-> (sqlh/select :field_id :layer :event_date :is_deleted)
(sqlh/from :event)
(sqlh/merge-where [:in :field_id field-ids])
(sqlh/merge-where (cond (not-empty layers) [:in :layer layers]))
(sqlh/merge-where [:>
[:field_id :layer :event_date]
["1627236" "fha.raw" (c/from-string "2018-07-23T09:45:07.6-07:00")]])
(sqlh/order-by :field_id :layer :event_date)
sql/format)
HoneySQL производит что-то, что не может работать
["SELECT field_id, layer, event_date, is_deleted FROM event WHERE (((field_id in (?, ?, ?)) AND (layer in (?, ?, ?, ?))) AND field_id(layer, event_date) > 1627236(?, ?)) ORDER BY field_id, layer, event_date"
"1325629"
"1627236"
"1673576"
"fha.abs"
"fha.rank"
"fha.true-color"
"fha.raw"
"fha.raw"
#object[org.joda.time.DateTime 0x4fa79ee8 "2018-07-23T16:45:07.600Z"]]
... он изобил мой составной ключ в предложении WHERE, ошибочно создавая вызов функции или что-то в этом роде: field_id(layer, event_date)
вместо (field_id, layer, event_date)
Как мне сделать эту работу?
Это связано с вопросом, который я задал ранее, когда пытался сделать то же самое в предложении ORDER BY( Как сделать так, чтобы HoneySQL обрабатывал заказ как составной ключ? ).Оказывается, что никогда не было решено с точки зрения составного ключа, но я позволил мне сортировать DESC по одному из полей.Другими словами, мне еще предстоит найти, как заставить HoneySQL создать составной ключ в предложениях WHERE или ORDER BY.
Я мог бы использовать небольшое направление.