实际使用haskelldb的数据类型(文本、UTCTime)
我刚刚开始研究实际使用haskelldb的数据类型(文本、UTCTime),haskell,haskelldb,Haskell,Haskelldb,我刚刚开始研究haskelldb,将其作为persistent更强大的伙伴,因为我需要一个更强大的工具来查询数据库。我几乎马上就遇到了数据类型方面的困难;特别是,我广泛使用了Data.Text,UTCTime以及一些自定义数据类型。不幸的是,尽管HDBC似乎很好地支持这些数据类型,但haskelldb隐藏了所有这些数据类型,您必须从String输入开始编写自己的转换 我不想重复HDBC已经完成的工作;在这种情况下,你建议怎么办 我想我可能会在GetInstances类中添加一个属性getHdbc
haskelldb
,将其作为persistent
更强大的伙伴,因为我需要一个更强大的工具来查询数据库。我几乎马上就遇到了数据类型方面的困难;特别是,我广泛使用了Data.Text
,UTCTime
以及一些自定义数据类型。不幸的是,尽管HDBC似乎很好地支持这些数据类型,但haskelldb隐藏了所有这些数据类型,您必须从String
输入开始编写自己的转换
我不想重复HDBC已经完成的工作;在这种情况下,你建议怎么办
我想我可能会在GetInstances
类中添加一个属性getHdbcValue
,这样我就可以编写简单的GetValue
实例来利用HDBC基础设施;还有更好的主意吗?我错过了什么明显的东西吗
(顺便说一句:在我看来,这个库——可能是出于历史原因——有点过于通用化了;它难道不能只支持hdbc吗?)我真的很喜欢PostgreSQL及其丰富的类型集合,特别是数组。Haskell之外的项目中使用最多的额外PG类型是[int4],这是典型的Int数组。将对它的支持带到Haskell数据库成为我在理解Haskell的过程中遇到的最激动人心的挑战之一,尤其是类型级编程(以及TH/QQ)。只要HDBC支持,添加一个新的类型来支持它看起来有点容易 希望这个小补丁可以展示如何添加对新类型的支持。这是对它的请求,这里几乎涵盖了所有需要的更改(剩下的是FlexibleInstances):
持久性真的那么有限吗?我想Yesod人什么都用它,所以如果Haskell DB能做很多它做不到的事情,我会感到惊讶。当然,HaskellDB可能能够以比persistent更简单的方式做一些事情。持久性被认为是真正的数据库不可知论,而haskelldb则以SQL为中心。Persistent不支持DB函数、自定义运算符,甚至不支持稍微复杂的联接。我不会责怪持久性,大多数ORM框架不支持此类功能,但在我访问DB的大多数应用程序中,我需要它们。您评估过esqueleto吗?“Pull-Request”链接返回404。