> On 11 Mar 2024, at 14:08, Artur Zakirov <zaar...@gmail.com> wrote:
> 
> On Mon, 11 Mar 2024 at 13:26, Michał Kłeczek <mic...@kleczek.org 
> <mailto:mic...@kleczek.org>> wrote:
>> 
>> 
>>> On 11 Mar 2024, at 11:41, Michał Kłeczek <mic...@kleczek.org> wrote:
>>> 
>>> Hi,
>>> 
>>> I am trying to create an extension that delegates some calls to btree_gist 
>>> functions:
>>> 
>>> DirectFunctionCall5Coll(
>>>               gbt_text_consistent, …other arguments);
>>> 
>>> Basic PGXS Makefile does not work - I get linker error:
>>> 
>>> Undefined symbols for architecture arm64:
>>> "_gbt_text_consistent", referenced from:
>>> 
>>> 
>>> Anyone could provide me with some hints?
>> 
>> I’ve added:
>> PG_LDFLAGS += -L$(shell $(PG_CONFIG) --pkglibdir) -lbtree_gist
> 
> You can try FunctionCall5Coll() or OidFunctionCall5Coll() functions.
> 
> OidFunctionCall5Coll() calls fmgr_info() and FunctionCall5Coll(). What
> you only need is Oid of the target function.

What I am trying to do is wrapping and decoration of gbt_text_consistent 
function.
The reason I want to use DirectFunctionCall5Col is that other variants require 
catalog lookup
as I don’t have old of the wrapped function.
The lookup itself is problematic as the only piece of information I have is the 
strategy number.
What’s more - the result of the lookup should be cached in fn_extra and that 
makes things even more complex.

Is there any way to simply link against another extension library?

—
Thanks

Reply via email to