Fwd: Advice about preloaded libraries

Поиск
Список
Период
Сортировка
От Esteban Zimanyi
Тема Fwd: Advice about preloaded libraries
Дата
Msg-id CAPqRbE7m3+tDCg08e-5xLXW0aUvaadNvfvXMmupS2_jr_jLCFQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: Advice about preloaded libraries  (Aleksander Alekseev <aleksander@timescale.com>)
Re: Fwd: Advice about preloaded libraries  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Список pgsql-hackers
MobilityDB
https://github.com/MobilityDB/MobilityDB
is a PostgreSQL extension that depends on PosGIS.

Bradford Boyle who has been working on packaging MobilityDB
https://www.postgresql.org/message-id/CAPqRbE716D3gpD0JDbaFAb72ELaJrPpG1LUZvobELNBgL3R0+g@mail.gmail.com
highlighted the issue of which of the GUC shared_preload_libraries vs local_preload_libraries vs session_preload_libraries should be used to load the postgis-3 library.

Our understanding of the information in the manual
https://www.postgresql.org/docs/16/runtime-config-client.html#GUC-SESSION-PRELOAD-LIBRARIES
does not give us a clear-cut answer for this question. We are looking for advice on which of the three options mentioned above should be used.

MobilityDB requires loading PostGIS before any MobilityDB query can be issued. For example, commenting out the following line
#shared_preload_libraries = 'postgis-3'
in the postgresql.conf shows the following

$ psql test
psql (15.3)
Type "help" for help.

test=# select tgeompoint 'Point(1 1)@2000-01-01';
2023-10-03 16:41:25.980 CEST [8683] ERROR:  could not load library "/usr/local/pgsql/15/lib/libMobilityDB-1.1.so": /usr/local/pgsql/15/lib/libMobilityDB-1.1.so: undefined symbol: ST_Intersects at character 19
2023-10-03 16:41:25.980 CEST [8683] STATEMENT:  select tgeompoint 'Point(1 1)@2000-01-01';
ERROR:  could not load library "/usr/local/pgsql/15/lib/libMobilityDB-1.1.so": /usr/local/pgsql/15/lib/libMobilityDB-1.1.so: undefined symbol: ST_Intersects
LINE 1: select tgeompoint 'Point(1 1)@2000-01-01';
                          ^
test=# select st_point(1,1);
                  st_point
--------------------------------------------
 0101000000000000000000F03F000000000000F03F
(1 row)

test=# select tgeompoint 'Point(1 1)@2000-01-01';
                            tgeompoint
-------------------------------------------------------------------
 0101000000000000000000F03F000000000000F03F@2000-01-01 00:00:00+01
(1 row)

test=#
------------------------------------------------------------

As can be seen above, it is not REALLY mandatory to have shared_preload_libraries = 'postgis-3' but then the user is responsible for issuing a query to load PostGIS (select st_point(1,1); above) and then she is able to execute MobilityDB queries.

Thanks for your advice.

В списке pgsql-hackers по дате отправления:

Предыдущее
От: David Rowley
Дата:
Сообщение: Re: Use virtual tuple slot for Unique node
Следующее
От: David Rowley
Дата:
Сообщение: Re: Check each of base restriction clauses for constant-FALSE-or-NULL