在postgresql中实现自定义比较

时间:2014-01-29 03:12:34

标签: postgresql plv8

我在postgres表中有一些数据,其中一列名为version(varchar类型)。我想使用我自己的比较函数对该列进行排序/排序,但我不确定最合适的答案是什么:

  • 我有一个样式comp的JS实现(左,右) - > -1/0/1,但我不知道如何在sql order by子句中使用它(通过plv8)
  • 我可以写一个C扩展,但我对此并不特别兴奋(主要是出于维护原因,因为在C中编写比较本身并不会太难)
  • 其他人?

我感兴趣的比较类型与包管理器中使用的版本字符串排序类似。

1 个答案:

答案 0 :(得分:1)

你想:

ORDER BY mycolumn USING operator

the docs for SELECT。看起来你可能需要为函数定义一个运算符,以及一个包含运算符的b-tree运算符类来使用它;你不能只写USING myfunc()

(没时间测试这个并立即编写演示)。