How do I call a function defined using CREATE FUNCTION in SQL inside a C function in an extension? I feel this should be possible as the query parser is able to resolve the function names and arguments in a raw string query. I want to know if there is a standard way to look up for user-defined functions in the backend.
For example, I have a function defined in SQL:
```
CREATE FUNCTION times_two(x integer)
RETURNS integer AS $$
SELECT x*2
$$ LANGUAGE SQL;
```
Now I wish to call `times_two()` in a C extension similar to:
```
// Look up for the user-defined function times_two()
// ...
// Use the function.
Datum ret = DirectFunctionCall(times_two, Int32GetDatum(13));
```
Surely, it is not possible. You can use SPI interface, which is most simple https://www.postgresql.org/docs/current/spi.html and instead of calling function, you can call "SELECT times_two(x)". PLpgSQL is working like that. It ensures necessary checks, and you don't need to manually handle NULL values.
For direct function call of SQL function, you can use OidFunctionCall