PostgreSQL:从C函数中评估SQL表达式

时间:2011-01-28 11:30:18

标签: c postgresql eval

我需要编写一个C函数来扩展我的PostgreSQL服务器功能。该函数的一个参数是一个字符串,表示返回数字的任何PostgreSQL有效表达式。例如:

  • 3个+ 5个* COS(7.4)/ 8
  • 7
  • 2 + 2
  • 日志(34)
  • 度(0.5)
  • power(9.0,3.0)
  • 8>的情况>当7 * 5 <1时,则为1然后为1。 43然后2其他3结束

等等

关键是我的函数首先替换数字的表达式(变量名)中的一些值,然后它应该执行表达式并返回结果(一个数字)。使用PL / pgSQL我可以使用EXECUTE expr INTO val,但是我怎么能在C函数中使用它呢?

非常感谢提前和最好的问候

1 个答案:

答案 0 :(得分:1)

SPI_execute_with_args听起来更接近你想要的东西。查看examples