Use of inv_getsize in functions
Hi,
I am programming a new set of functions for manipulation blobs, one
of the functions is that I want to get the size of the blob.
The function is coded in C and goes like this:
Datum
blob_size(PG_FUNCTION_ARGS)
{
Oid blob_oid = PG_GETARG_OID(0);
uint32 blobsize = 0;
blobsize = inv_getsize( blob_oid );
PG_RETURN_UINT32( blobsize );
}
I have used other function calls like
inv_open with no problem, but when I load this modules I get:
undefined symbol: inv_getsize
No errors when compiling.
I use:
postgresql 7.4.7 on debian/woody i386
Best regards,
Søren
On Tue, Aug 09, 2005 at 10:54:49PM +0200, Soeren Laursen wrote:
I have used other function calls like
inv_open with no problem, but when I load this modules I get:undefined symbol: inv_getsize
Notice the word "static" in the definition of inv_getsize() in
src/backend/storage/large_object/inv_api.c:
static uint32
inv_getsize(LargeObjectDesc *obj_desc)
{
...
}
I don't know if there's a good reason for inv_getsize() being static.
Maybe your code could use inv_seek() instead.
No errors when compiling.
If you compile with warning flags, then you should at least have
gotten a warning like "implicit declaration of function `inv_getsize'".
That's a hint that something's wrong.
--
Michael Fuhr
On Tue, Aug 09, 2005 at 10:54:49PM +0200, Soeren Laursen wrote:
Hi,
I am programming a new set of functions for manipulation blobs, one
of the functions is that I want to get the size of the blob.
Huh, we don't call them "blobs". They are "large objects" in
PostgreSQL.
I have used other function calls like
inv_open with no problem, but when I load this modules I get:undefined symbol: inv_getsize
That's because inv_getsize is declared as static.
I think it would be nice to export equivalent functionality, so one can
get the size of the LO without having to seek() and tell().
--
Alvaro Herrera (<alvherre[a]alvh.no-ip.org>)
"�Que diferencia tiene para los muertos, los hu�rfanos, y aquellos que han
perdido su hogar, si la loca destrucci�n ha sido realizada bajo el nombre
del totalitarismo o del santo nombre de la libertad y la democracia?" (Gandhi)
Hi,
Red ears, looking down on my shoes!
Well I code one getsize my self using inv_seek.
Had disabled a lot of compiler warnings because I am reusing a lot of
spaghetti code for testing etc. This was proberly a hint for starting
to clean up the code.
Regards,
Søren
Show quoted text
On Tue, Aug 09, 2005 at 10:54:49PM +0200, Soeren Laursen wrote:
I have used other function calls like
inv_open with no problem, but when I load this modules I get:undefined symbol: inv_getsize
Notice the word "static" in the definition of inv_getsize() in
src/backend/storage/large_object/inv_api.c:static uint32
inv_getsize(LargeObjectDesc *obj_desc)
{
...
}I don't know if there's a good reason for inv_getsize() being static.
Maybe your code could use inv_seek() instead.No errors when compiling.
If you compile with warning flags, then you should at least have
gotten a warning like "implicit declaration of function `inv_getsize'".
That's a hint that something's wrong.--
Michael Fuhr