postgresql - Haskell PostgreSQL 简单 FromField

标签 postgresql haskell field instance postgresql-simple

我在为自定义枚举数据类型定义 FromField 实例时遇到问题:

data Role = Staff | Student deriving (Eq, Ord, Show)

为了表示数据库中的Role,我将使用整数 0 和 1(稍后可以添加更多角色),很可能是 smallint

Review 用于我的其他数据类型,表示数据库表中的一行:

data ReviewAssignment = ReviewAssignment
  { aID :: ID
  , reviewID :: ID
  , reviewerID :: ID
  , revieweeID :: ID
  , reviewerRole :: Role -- <-- right there
  , reviewFinished :: Bool
  , reviewPoints :: Float
  } deriving (Show, Eq)

这是我的 ReviewAssignment 的 FromRow 实例:

instance FromRow ReviewAssignment where
  fromRow = ReviewAssignment <$> field <*> field <*> field <*> field <*> field <*> field <*> field

现在我只是缺少以下内容,我不明白如何实现:

instance FromField Role where
  fromField = undefined

最佳答案

可能为时已晚,但类似的事情应该有效(希望如此):

instance FromField Role where
  fromField f mdata =
    return role
    where role = case mdata of
      Just 0 -> Staff   
      _      -> Student

关于postgresql - Haskell PostgreSQL 简单 FromField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34919996/

相关文章:

PostgreSQL 查询包含来自单独表的 id 的数组

postgresql - 自动提交关闭,开始并警告正在进行的事务

haskell - 如何重载haskell中的幂函数(^)?

PHP 检查是否为空字段

java - 为什么新实例使用旧实例的记录器?

c# - Count + List with Futures 不起作用

Python将参数传递给查询错误

Haskell函数签名和 "Could not deduce"编译器错误

haskell - 我可以在数据构造函数内将 View 模式转换到数据上吗?

python - Python ctypes 字段中的回调函数