I have been chasing the grant/revoke problems (on Linux platforms) and
have had some success. There were two problems causing SIGSEGV's to
crash the backend.
The first problem was caused by a function trying to pass a string
directly. This was fixed by returning the result of a strdup().
The second problem is in ./src/backend/parser/gram.y . The grant and
revoke statements are the only ones to use "free()". Somehow this is
causing SIGSEGV's and crashing the backend. I removed these from the
source and re-built everything: and it works now. But! I know absolutely
nothing about yacc/bison and do not know the implications of removing
these statements from the source.
If everyone thinks it is OK, I will submit patches. If someone can look
at the grant and revoke code in gram.y, I will submit the patches for
./src/backend/utils/init/miscinit.c.
-James