Thread: lots of errors from fmgr.h when I try to write a C UDF

lots of errors from fmgr.h when I try to write a C UDF

From
Anh Pham
Date:
Hi,
I had Postgres 9.3 setup and run successfully in Eclipse (MacOSX)
I am trying to write a C user-defined function:

#include <fmgr.h>
...
#ifdef PG_MODULE_MAGIC
PG_MODULE_MAGIC;
#endif
...

However, when I tried to compile the code:
gcc -fpic -c ...
It gave me a lot of errors and warnings from fmgr.h:

...
/Users/atpham/workspacecdt/pgsql/src/include/fmgr.h:59:2: error: unknown type name 'MemoryContext'

        MemoryContext fn_mcxt;          /* memory context to store fn_extra in */
        ^
/Users/atpham/workspacecdt/pgsql/src/include/fmgr.h:71:2: error: unknown type name 'Oid'
        Oid                     fncollation;    /* collation for function to use */
        ^
/Users/atpham/workspacecdt/pgsql/src/include/fmgr.h:72:2: error: unknown type name 'bool'
        bool            isnull;                 /* function must set true if result is NULL */
...

Any suggestion where I did it wrong?
Thank you :)

Re: lots of errors from fmgr.h when I try to write a C UDF

From
Tom Lane
Date:
Anh Pham <atpham.wpi@gmail.com> writes:
> I am trying to write a C user-defined function:

> *#include <fmgr.h>*
> *...*
> *#ifdef PG_MODULE_MAGIC*
> *PG_MODULE_MAGIC;*
> *#endif*
> ...

> However, when I tried to compile the code:
> *gcc -fpic -c* ...
> It gave me a lot of errors and warnings from fmgr.h:

Most Postgres backend header files assume that you've included
postgres.h first ... did you do that?

            regards, tom lane