PostgreSQL: оценка выражения SQL из C-функций - PullRequest
1 голос
/ 28 января 2011

Мне нужно написать C-функцию для расширения функциональности моего сервера PostgreSQL. Одним из аргументов этой функции является строка, представляющая любое допустимое выражение PostgreSQL, возвращающее число. Например:

  • 3 + 5 * сов (7.4) / 8
  • 7
  • 2 + 2
  • журнал (34)
  • градусов (0,5)
  • Мощность (9,0, 3,0)
  • случай, когда 8> 2, затем 1, когда 7 * 5 <43, затем 2, в противном случае 3 end </li>

и т. Д.

Дело в том, что моя функция сначала заменяет некоторые значения в выражении (имена переменных) на числа, а затем должна выполнить выражение и вернуть результат (число). С PL / pgSQL я могу использовать EXECUTE expr INTO val, но как я могу сделать это в функции C?

Большое спасибо заранее и наилучшими пожеланиями

1 Ответ

1 голос
/ 28 января 2011

SPI_execute_with_args звучит ближе к тому, что вы ищете. Посмотрите примеры тоже.

...