> 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