Hi folks,
I need to do a complex bitwise operation on integers during a select
query such as:
select acctname from users U where func(U.flags, 27) = 0;
The function in C is:
result = (~A) & (A ^ B)
I didn't see any bitwise operations like AND and XOR in the postgres
doc -- if they're there, I apologize and would love a pointer to the
doc.
Otherwise, I've gone down the path of trying to write a C function to
do this... and am getting this error:
db=> select not_a_and__a_xor_b(1,1);
ERROR: Load of file /home/michael/sql/funcs.so failed:
��t@��t@chael/sql/funcs.so: invalid ELF header
I'm compiling with the -fpic option for Linux (under gcc)
cc -c -O2 -fpic -g -I. -I./include -I. -I./include -c funcs.c -o
funcs.o
/bin/rm -f funcs.so
/usr/bin/ar cr funcs.so funcs.o
Can someone tell me the step(s) I'm missing or what to try next? I've
tested the C code - works fine (included below).
thanks,
--Michael
------------------------------------------------
//
// functions used within postgres
//
#include "postgres.h" /* for char16, etc. */
int
not_a_and__a_xor_b(int A, int B)
{
return (~A) & (A ^ B);
}
_________________________________________________________
DO YOU YAHOO!?
Get your free @yahoo.com address at http://mail.yahoo.com