From: | "David G(dot) Johnston" <david(dot)g(dot)johnston(at)gmail(dot)com> |
---|---|
To: | Lorusso Domenico <domenico(dot)l76(at)gmail(dot)com> |
Cc: | Adrian Klaver <adrian(dot)klaver(at)aklaver(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: How to add function schema in search_path in option definitio |
Date: | 2023-07-11 20:50:49 |
Message-ID: | CAKFQuwZo8B9PMdBL2o7Tzr9HuDfobBk5XpPWrsuf4Lv44uP3Vw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Sat, Jul 8, 2023 at 10:00 AM Lorusso Domenico <domenico(dot)l76(at)gmail(dot)com>
wrote:
> Hello Adrian,
> I've created a schema to handle some specific features.
> In the schema there are a couple of tables used by many functions (more
> than 20).
> In other words, I've created a schema as a package (as suggested in many
> points).
>
> I wish, in a function of this schema, to be able to call each other
> functions of this schema without adding the schema name in the call
> instruction.
>
PostgreSQL isn't really designed for that - especially if you aren't
formally creating an extension but simply putting stuff into a schema.
The script code you use to install your makeshift package should handle
dynamic schema naming. It's a pain, do you really need to allow the name
of the schema to be unknown at installation time?
You should read up on how extensions are implemented - you are basically
writing your own CREATE EXTENSION implementation.
https://www.postgresql.org/docs/current/extend-extensions.html#EXTEND-EXTENSIONS-RELOCATION
In any case, there really aren't any smarts here: explicitly schema qualify
your function calls and forget that search_path even exists. Unless you
are writing custom operators, and even then, consider search_path to be
evil.
David J.
From | Date | Subject | |
---|---|---|---|
Next Message | Johnathan Tiamoh | 2023-07-11 21:45:13 | Re: Need Help On Upgrade |
Previous Message | Adrian Klaver | 2023-07-11 20:17:16 | Re: How to add function schema in search_path in option definitio |