我需要编写一个 C 函数来扩展我的 PostgreSQL 服务器功能。该函数的参数之一是一个字符串,表示返回数字的任何 PostgreSQL 有效表达式。例如:
- 3+5*cos(7.4)/8
- 7
- 2+2
- 记录(34)
- 度(0.5)
- 功率(9.0, 3.0)
- case when 8 > 2 then 1 when 7*5 < 43 then 2 else 3 end
等等
关键是我的函数首先将表达式(变量名)中的一些值替换为数字,然后它应该执行表达式并返回结果(一个数字)。对于 PL/pgSQL,我可以使用 EXECUTE expr INTO val,但我如何在 C 函数中执行它?
提前致谢,致以最诚挚的问候
最佳答案
SPI_execute_with_args
听起来更接近你要找的东西。查看examples也是。
关于c - PostgreSQL:从 C 函数评估 SQL 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4827713/