YesQL/pgsql "не удалось определить тип данных параметра $1"

Я пытаюсь использовать NULL повторно использовать запросы как для конкретного поиска, так и для возврата индекса (в основном реализуя идею, обсуждаемую здесь http://dev.solita.fi/2015/12/29/SQL-in-applications.html). Тем не менее, я получаю ERROR: could not determine data type of parameter $1 в любое время я пытаюсь использовать тело функции с [] Титулы.

Вот такая уловка

(defn get-ips
  "Get a list of IPs and their User Ids"
  ([] (ip-addresses {:uids nil}))
  ([uids] (ip-addresses {:uids uids})))

Вот sql

-- name: ip-addresses
SELECT ipo.ip_address_id::varchar as address, ipo.user_id
FROM ip_ownerships AS ipo
WHERE :uids IS NULL OR ipo.user_id IN (:uids)

1 ответ

Решение

Так что я только что нашел ответ. Решение состоит в том, чтобы вручную привести тип параметра:

-- name: ip-addresses
SELECT ipo.ip_address_id::varchar as address, ipo.user_id
FROM ip_ownerships AS ipo
WHERE :uids::int IS NULL OR ipo.user_id IN (:uids)
Другие вопросы по тегам