Доброго времени суток!
Вот возникла потребность написать функцию на С для PostgreSQL.
В базе есть lo-объекты, всё проверено, всё работает.
Написал функцию на С, подключил её в pg, ни каких ругательств, но...
В функции делаю:
fd = lo_open(conn, lobjId, INV_READ);
и мне тут-же возвращается
ERROR: large object 137550584 does not exist
но что самое интересное указывается не тот OID с которым вызывался lo_open, и возвращаемый OID всегда меняется.
Оформляю эту же функцию в виде программы - всё работает!
Т.е. получается что каким-то страннным образом бьётся OID который попадает
в lo_open.
Буду рад услышать любые идеи, ибо уже идей нет...
P.S.
SELECT version();
PostgreSQL 8.0.4 on i486-pc-linux-gnu, compiled by GCC cc (GCC) 4.0.2 (Debian 4.0.2-2)
С уважением,
--
Denis A. Egorov