cube
s 与 postgresql-simple
一起使用?
此刻,我正在做类似的事情
query conn "SELECT thing FROM table WHERE coord <@ cube('?, ?') ORDER BY cube_distance(coord, cube('?')) ASC"
(In [a, b, c], In [d, e, f], In [g, h, i])
效果很好,但感觉像是对
In
的误用。在executeMany
的情况下它也会失败。例如
executeMany conn "INSERT INTO table(thing, coord) VALUES(?, cube('?'))" lst
其中
lst :: [(String, In [Float])]
以 syntax error in multi-row template
失败。等效,但效率较低
mapM_ (execute conn "INSERT INTO table(thing, coord) VALUES(?, cube('?'))") lst
工作正常,所以我假设这与
executeMany
组织插入参数的方式有关。
但是,文档没有提到
Cube
类型,我找不到它的使用示例,所以我不太确定我 supposed 做什么。
你可以使用我写的这个迷你图书馆。一旦你包括它,你就可以做
execute "INSERT INTO table(cube_field, name) VALUES(?, ?) RETURNING id" (Cube [[1, 2, 3]], "Testing")
更重要的是,
executeMany "INSERT INTO table(cube_field, name) VALUES(?, ?) RETURNING id"
[(Cube [[1, 2]], "One"), (Cube [[3, 4]], "Two"), (Cube [[5, 6]], "Three")]
没有
fromField
实例,所以此时不能选择Cube
s。我不会添加它,因为它看起来很重要,而且我的用例不需要它,但是绝对欢迎补丁。