Executing SQL expression from C-functions
Hello,
I need to write a C-function to extend my PostgreSQL server
functionality. One of the arguments of that function is a string
representing any PostgreSQL valid expression returning a number. For
example:
3+5*cos(7.4)/8
7
2+2
log(34)
degrees(0.5)
power(9.0, 3.0)
case when 8 > 2 then 1 when 7*5 < 43 then 2 else 3 end
and so on
The point is my function first replace some values in the expression
(variable names) for numbers and then it should execute the expression
and returns the result (a number). With PL/pgSQL I can use EXECUTE
expr INTO val, but how could I do it in a C function?
Many thanks in advance, and best regards
--
Jorge Arévalo
Internet & Mobilty Division, DEIMOS
jorge.arevalo@deimos-space.com
http://mobility.grupodeimos.com/
http://gis4free.wordpress.com
http://geohash.org/ezjqgrgzz0g
Hello
see SPI interface
http://www.postgresql.org/docs/8.4/interactive/spi-examples.html
Regards
Pavel Stehule
2011/1/28 Jorge Arévalo <jorge.arevalo@deimos-space.com>:
Show quoted text
Hello,
I need to write a C-function to extend my PostgreSQL server
functionality. One of the arguments of that function is a string
representing any PostgreSQL valid expression returning a number. For
example:3+5*cos(7.4)/8
7
2+2
log(34)
degrees(0.5)
power(9.0, 3.0)
case when 8 > 2 then 1 when 7*5 < 43 then 2 else 3 endand so on
The point is my function first replace some values in the expression
(variable names) for numbers and then it should execute the expression
and returns the result (a number). With PL/pgSQL I can use EXECUTE
expr INTO val, but how could I do it in a C function?Many thanks in advance, and best regards
--
Jorge Arévalo
Internet & Mobilty Division, DEIMOS
jorge.arevalo@deimos-space.com
http://mobility.grupodeimos.com/
http://gis4free.wordpress.com
http://geohash.org/ezjqgrgzz0g--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general
2011/1/28 Pavel Stehule <pavel.stehule@gmail.com>:
Hello
see SPI interface
http://www.postgresql.org/docs/8.4/interactive/spi-examples.html
Regards
Pavel Stehule
Hi Pavel,
Thanks a lot!
Best regards,
--
Jorge Arévalo
Internet & Mobilty Division, DEIMOS
jorge.arevalo@deimos-space.com
http://mobility.grupodeimos.com/
http://gis4free.wordpress.com
http://geohash.org/ezjqgrgzz0g
Show quoted text
2011/1/28 Jorge Arévalo <jorge.arevalo@deimos-space.com>:
Hello,
I need to write a C-function to extend my PostgreSQL server
functionality. One of the arguments of that function is a string
representing any PostgreSQL valid expression returning a number. For
example:3+5*cos(7.4)/8
7
2+2
log(34)
degrees(0.5)
power(9.0, 3.0)
case when 8 > 2 then 1 when 7*5 < 43 then 2 else 3 endand so on
The point is my function first replace some values in the expression
(variable names) for numbers and then it should execute the expression
and returns the result (a number). With PL/pgSQL I can use EXECUTE
expr INTO val, but how could I do it in a C function?Many thanks in advance, and best regards
--
Jorge Arévalo
Internet & Mobilty Division, DEIMOS
jorge.arevalo@deimos-space.com
http://mobility.grupodeimos.com/
http://gis4free.wordpress.com
http://geohash.org/ezjqgrgzz0g--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general