Aristide Aragon <[EMAIL PROTECTED]> writes:

> I have to do some programming in C or C++ and PostgreSQL.
> Having not ever done this before, I opened the documentation (in my machine, 
>/usr/local/pgsql/doc) and read about the options I had. SPI, libpq, libpq++ and ecpg. 
>I don't want, if possible, an embeded language, or anything that requires a 
>preprocessor. So, I thought to start by trying the first, SPI, which also seemed to 
>be simple.

SPI is only for stored procedures which are dynamically linked into
the Postgres backend.

Ordinary code doesn't do that.  It uses some one of the other
mechanisms.

Ian

> /tmp/ccPIp24d.o(.text+0x7): undefined reference to `SPI_connect'
> /tmp/ccPIp24d.o(.text+0x2b): undefined reference to `SPI_exec'
> /tmp/ccPIp24d.o(.text+0x33): undefined reference to `SPI_finish'

When your program is dynamically linked in, those functions will be
satisfied by definitions in the Postgres backend.

> So I supposed I needed to link against some library. With grep I searched 
>/usr/local/pgsql/lib for SPI_, and I found no .a's matching.
> I found that /usr/local/pgsql/lib/plpgsql.so and /usr/local/pgsql/lib/pltcl.so had 
>"SPI_", however none worked.

Those are examples of backend procedures which are dynamically linked
in, in those cases to define a language.

Ian

Reply via email to