您打算如何将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
类型,我找不到它的使用示例,所以我不确定我所谓的要做。
答案 0 :(得分:0)
您可以使用this mini-library我写的。一旦你包括它,你可以做
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
。我不会添加它,因为它看起来不平凡,我不需要它用于我的用例,但是patches are definitely welcome。