Запрос Esqueleto, который возвращает постоянное значение
Можно ли использовать esqueleto для создания запроса, который возвращает постоянное значение? подобно SELECT 1
например.
1 ответ
Решение
Попробуй это:
import Database.Esqueleto
-- | We have to specialize `val` or else the type inferencer
-- will complain about the `Esqueleto` instance.
val_ :: Int -> SqlExpr (Value Int)
val_ = val
query :: SqlPersistT IO [Value Int]
query = select $ return (val_ 1)
Комментарий @ Чи был близок, но 1
нужно было поднять в SqlExpr
, val
написано в общем и зависит от Esqueleto
экземпляр класса. Обычно средство вывода типов захватывает это, как только вы используете from
и вытащил таблицу SQL, но так как ничего этого здесь нет, мы должны специализироваться вручную.
В целом, хороший пример того, как классы типов могут запутывать смысл и заставлять людей обращаться к документации или форумам.