Search Postgresql Archives

Re: Pgxs - How to reference another extension

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi

po 11. 3. 2024 v 14:48 odesílatel Michał Kłeczek <michal@xxxxxxxxxxx> napsal:


On 11 Mar 2024, at 14:08, Artur Zakirov <zaartur@xxxxxxxxx> wrote:

On Mon, 11 Mar 2024 at 13:26, Michał Kłeczek <michal@xxxxxxxxxxx> wrote:


On 11 Mar 2024, at 11:41, Michał Kłeczek <michal@xxxxxxxxxxx> 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?

The advantage of OidFunctionCall is fact, it is working on MacOS. My extension plpgsql_check has a lot of dependencies on plpgsql.

The linking on MacOS required special section in Makefile

ifeq ($(PORTNAME), darwin)
override CFLAGS += -undefined dynamic_lookup
endif

And there was another problem with loading dependencies. So now, I use only indirect methods.

DirectFunctionCall is ok just for buildin functions.

Regards

Pavel
 

Thanks


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]

  Powered by Linux