On Dec 26, 2024, at 20:09, Andrei Lepikhov <lepi...@gmail.com> wrote:

> We intentionally wrote a library, not an extension. According to user usage 
> and upgrade patterns, it works across the whole instance and in any database 
> or locally in a single backend and ends its impact at the end of its life.

The same is true for the shared libraries included in many extensions. A shared 
library is just an extension that’s available in all databases and has no 
associated SQL interface.

> Also, it doesn't maintain any object in the database and is managed by GUCs.

Sure, but this is just a semantic argument. The Postgres developers get to 
decide what terms mean. I’m I argue it can be worthwhile to merge the idea of a 
library into extensions.

> For example, my libraries add query tree transformations/path recommendations 
> to the planner. It doesn't depend on a database and doesn't maintain DSM 
> segments and users sometimes want to use it in specific backends, not 
> databases - in a backend dedicated to analytic queries without extra overhead 
> to backends, picked out for short queries. For what reason do I need to add 
> complexity and call 'CREATE EXTENSION' here and add version info only in a 
> specific database? Just because of a formal one-directory structure?

Perhaps shared-library only extensions are not limited to a single database.

Best,

David

Attachment: signature.asc
Description: Message signed with OpenPGP

Reply via email to