Postgresql 为Hasql查询编码参数列表

Postgresql 为Hasql查询编码参数列表,postgresql,haskell,contravariance,hasql,Postgresql,Haskell,Contravariance,Hasql,我正在尝试对一个“select…where in”查询的列表进行编码。它会检查我是否使用了contramyfrom,但在运行时会出现语法错误 import qualified Database.Encoders as E import Contravariant.Extras getTeamMembership :: Query [TeamId] [(TeamId, EmployeeId)] getTeamMembership = statement q enc def True wher

我正在尝试对一个“select…where in”查询的列表进行编码。它会检查我是否使用了
contramy
from,但在运行时会出现语法错误

import qualified Database.Encoders as E
import Contravariant.Extras

getTeamMembership :: Query [TeamId] [(TeamId, EmployeeId)]
getTeamMembership = statement q enc def True
  where
    enc = contramany (E.value E.teamId)
    q = "select workteam, employee \
        \from workteam_employee where workteam in $1"
无法对参数列表进行编码吗?

IN运算符不支持该操作。您只能使用它指定单个值(例如,
在($1,$2,$3)
)。然而,您想要的是很容易实现的阵列编码器和
任何
所有
Postgres功能,根据


问题追踪器上也出现了问题。

谢谢你的帮助!我现在有了:
E.value(E.arraydimensionfoldl'(E.arrayValue E.teamId)),而不是
contramy(E.value E.teamId)