sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur gör man för att göra en förlängning inte flyttbar?

Först måste du ändra relocatable till false i tilläggets kontrollfil.

I övrigt är rekommendationen du fick dels rimlig och dels nonsens.

Du bör definiera dina funktioner så här:

CREATE FUNCTION .... AS
$$ /* function body */ $$
SET search_path = @[email protected];

Sedan search_path är fixerad till pg_catalog , pg_temp och ditt tilläggsschema under funktionsanropets varaktighet. Det betyder att all åtkomst till objekt utan ett explicit schema endast kommer att söka i dessa scheman.

Då behöver du inte oroa dig för att uttryckligen kvalificera allt i funktionen med @[email protected] , och du kan använda operatorer utan att behöva oroa dig, eftersom search_path gäller även operatörer. (Du kan också schemakvalificera operatorer:OPERATOR(schema.+) , men det är uppenbarligen smärtsamt och skadar läsbarheten.)




  1. sql-fråga för att returnera skillnader mellan två tabeller

  2. SQL Server 2017 Steg för steg Installation -2

  3. Hur skapar jag en procedur i Oracle SQL Developer?

  4. 1052:Kolumn 'id' i fältlistan är tvetydig